试图将 ViewController 中的字符串传递给 NSObject 中的字符串 .. 但它不起作用
Posted
技术标签:
【中文标题】试图将 ViewController 中的字符串传递给 NSObject 中的字符串 .. 但它不起作用【英文标题】:Trying to pass a string in a ViewController to a string in a NSObject.. but it dosn't work 【发布时间】:2011-05-03 00:37:55 【问题描述】:嗨,我试图将 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 喂我更多饼干!功能=错误 代码=1 Text=请注册设备 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)??
这就是我将变量传递给 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];
【问题讨论】:
我认为我们需要查看更多代码。 registerdeviceviewcontrollers init 方法是什么样的? 如果 UItextField 被传递给视图控制器内的 NSString(如 NSLog 所示),我应该能够将该字符串传递给 NSObject。当您说您想查看 init 方法时,您指的是我接受文本字段输入的方法吗? 【参考方案1】:为了像这样访问 checkString,您需要 checkString 是一个非原子属性。
在 RegisterDeviceViewController.h 的底部,就在 @end
之前,添加
@property (nonatomic, retain) NSString *checkString;
然后,在RegisterDeviceViewController.m的顶部,就在@implementation RegisterDeviceViewController
之后,添加
@synthesize checkString;
【讨论】:
以上是关于试图将 ViewController 中的字符串传递给 NSObject 中的字符串 .. 但它不起作用的主要内容,如果未能解决你的问题,请参考以下文章
试图从一个 Viewcontroller 中的 UILabel 获取 NSString 以放置在另一个 Viewcontroller 的 UITextView 中