NSMutableString返回null

时间:2011-01-13 00:00:54

标签: objective-c

我有一个NSMutableString,我将其他字符串附加到。

当我打印String时,我得到null。

<。>文件中的

NSMutableString *name;
@property(nonatomic, retain) NSMutableString *name;
<。>文件中的

@synthesize name;

-(IBAction) a {
if (uppercase == 1) {
    [name appendString:@"A"];
    NSLog(@"name: %@", name);
}
else
    [name appendString:@"a"];
    NSLog(@"name: %@", name);
}

触发操作时,我得到以下打印输出。

  

名称:( null)

为什么这会返回null?

2 个答案:

答案 0 :(得分:2)

我的猜测是你从未初次化它。类似的东西:

- (id)init {
    // Standard init code here...
    self.name = [NSMutableString stringWithString:@""];
}

...确保您拥有可以使用的有效对象?

答案 1 :(得分:1)

您是否在代码中的任何位置设置了“name”的值?在您在问题中粘贴的代码中,“名称”永远不会被设置。你不能将一个字符串附加到一个不存在的东西 - 你有效地试图将一个值附加到null,这就是为什么没有返回任何东西。

所以我想我的答案是:根据您显示的代码,名称从未分配任何内容。如果要为“名称”指定字符串,则问题出在其他地方,但您需要发布作业代码等。