试图将 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?

将参数传递给 AS400 中的存储过程以匹配 IN 键

试图从一个 Viewcontroller 中的 UILabel 获取 NSString 以放置在另一个 Viewcontroller 的 UITextView 中

试图从 didSelectCellAtIndex 将图片加载到新的 ViewController

Vue 如何接受IOS传过来的window数据

多线程 ViewController 中的 UIWebView