Пытаюсь передать строку в ViewController в строку в NSObject.. но это не работает

#nsstring #uitextfield #viewcontroller #nsobject

#nsstring #uitextfield #viewcontroller #nsobject

Вопрос:

Привет, я пытаюсь передать NSString, которая находится в ViewController, в NSString в NSObject. Вот код, который я использую в моем NSObject для вызова строки и передачи ее в мою новую строку.

     RegisterDeviceViewController *S = [[RegisterDeviceViewController alloc] init];
tempRegCode = S.checkString;
NSLog(@"tempRegCode=%@",tempRegCode);
  

проблема в том, что после нажатия кнопки в представлении, которая запускает метод в моем NSObject, он работает нормально, однако ничего не передается во tempRegCode .. вот мой журнал.

[Сеанс начался в 2011-05-03 09:27:35 1200.] 2011-05-03 09:27:36.264 instaCode1.3[1456:207] ням-ням, накорми меня еще печеньем!! функция = Код ОШИБКИ = 1 Текст = Пожалуйста, зарегистрируйте устройство 2011-05-03 09:27:36.266 instaCode1.3[1456:207] cookieCode = code1 2011-05-03 09:27:37.983 instaCode1.3[1456:207] оповещения.нажата кнопка OK 2011-05-03 09:27:49.539 instaCode1.3[1456:207] Регистрация пользователей ‘22222-22222-22222-22222’ 2011-05-03 09:27:49.540 instaCode1.3[1456:207] tempRegCode=(null)

Как вы можете видеть в конце там ‘tempRegCode=(null)??

И вот как я передал переменную в checkString

 - (IBAction)submitRegistration:(id)sender{
//NSLog(@"submit Registration button has been pressed");

//add text format here
checkString = regTextField.text;
NSLog(@"Users Registration is '%@'",checkString);

regConnection *Reg= [[regConnection alloc] init];
[Reg startRegConnect];
  

}

Комментарии:

1. Я думаю, нам нужно увидеть больше кода. Как выглядит метод инициализации registerdeviceviewcontrollers?

2. Если UITextField передается в NSString (как показано в NSLog) внутри контроллера представления, я должен быть в состоянии передать эту строку в NSObject. Когда вы говорите, что хотели бы увидеть метод init, вы имеете в виду метод, в котором я принимаю ввод в мое текстовое поле?

Ответ №1:

Чтобы получить доступ к checkString подобным образом, вам нужно, чтобы checkString был неатомным свойством.

В нижней части вашего RegisterDeviceViewController.h, непосредственно перед @end , добавьте

 @property (nonatomic, retain) NSString *checkString;
  

Затем, в верхней части RegisterDeviceViewController.m, сразу после @implementation RegisterDeviceViewController , добавьте

 @synthesize checkString;