Передача NSString из ViewController в NSObject - PullRequest
0 голосов
/ 03 мая 2011

Привет, я пытаюсь передать 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] ням-ням накормить меня еще печенькой !! FUNC = ОШИБКА Код = 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] alerts.m Нажата кнопка ОК 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) ??

EDIT :: Вот как я передал переменную в 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 Ответ

0 голосов
/ 03 мая 2011

Вы устанавливаете свойство checkString на что-либо в методе -init вашего контроллера представления?Если вы этого не сделаете, по умолчанию будет NULL.

Что-то вроде этого (в вашем файле RegisterDeviceViewController.m):

- (id)init {
    self.tempRegCode = @"My String";
}

Если вы пытаетесь получить строку, которая находится вуже созданная копия RegisterDeviceViewController, вам нужна ссылка на эту копию, а не на вновь выделенную.Например, если в вашем файле XIB есть экземпляр RegisterDeviceViewController, используйте IBOutlet для этого экземпляра в своем подклассе NSObject, а затем вызовите -tempRegCode для этого экземпляра.

...