将NSString从ViewController传递给NSObject

时间:2011-05-02 21:34:28

标签: iphone ios uiviewcontroller nsstring nsobject

您好我试图将ViewController中的NSString传递给NSObject中的NSString。 这是我在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] yum yum给我更多的饼干! FUNC = ERROR   码= 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按下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)??

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 :(得分:0)

您是否将属性checkString设置为视图控制器的-init方法中的任何内容?如果不这样做,它将默认为NULL。

像这样(在RegisterDeviceViewController.m文件中):

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

如果您尝试获取RegisterDeviceViewController的已经实例化的副本中的字符串,则需要对该副本的引用,而不是对新分配的副本的引用。例如,如果您的XIB文件中有RegisterDeviceViewController的实例,请在NSObject子类中对此实例使用IBOutlet,然后在该实例上调用-tempRegCode