2011-01-13 67 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