如何从另一个类设置NSString *属性?

时间:2011-08-22 19:21:32

标签: iphone objective-c nsstring

请查看以下代码。

FirstViewController.h:

@interface FirstViewController : UIViewController {
    NSString* inputData;
}

@property (nonatomic, copy/retain) NSString* inputData;

FirstViewController.m:

@synthesize inputData;

SecondViewController.m:

- (IBAction)buttonSaveDown {
    [firstViewController setInputData:@"Text"];
    firstViewController.inputData = @"Text";
    firstViewController.inputData = [[NSString stringWithString:@"Text"] retain];
}

使用inputData在每一行之后添加断点。检查firstViewController.inputData - 它是'(null)'!为什么呢?

Printing description of inputData:
(null)

此外,我在调试器中尝试“编辑值”。设置值后,结果也是'(null)'。

构建时没有任何警告。请帮助任何人。非常感谢!

致版主:抱歉,当有人要求删除相关评论时,有人删除了上一个相同的问题。

2 个答案:

答案 0 :(得分:3)

您的firstViewController变量未设置为任何内容。您需要将它设置为FirstViewController的有效实例,然后才能对它执行任何有用的操作。

答案 1 :(得分:1)

只需使用

@property (nonatomic, retain) NSString* inputData;

然后这些都应该有效:

[firstViewController setInputData:@"Text"];
firstViewController.inputData = @"Text";
firstViewController.inputData = [NSString stringWithString:@"Text"];