2011-01-13 118 views
0

我有一个NSMutableString,我附加了其他字符串。null由NSMutableString返回

当我打印字符串时,我得到空。

在.m文件

@synthesize name; 

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

触发的动作时,我得到如下打印出来.h文件

NSMutableString *name; 
@property(nonatomic, retain) NSMutableString *name; 

的名字:(空)

这是为什么返回null?

回答

2

我的猜测是你从来没有初始化它。喜欢的东西:

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

...以确保你有一个有效的对象一起工作呢?

+0

谢谢,我正在尝试类似的东西,但没有stringWithString。 ;) – jarryd 2011-01-13 00:24:56

1

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

所以我想我的答案是:基于你所显示的代码,名称从来没有任何分配给它。如果你将一个字符串分配给'name',你的问题在其他地方,但是你需要发布代码以便分配等。

+0

分配NSString和NSMutableString有什么区别吗? – jarryd 2011-01-13 00:05:56