2011-01-13 10 views
0

私は他の文字列を追加するNSMutableStringを持っています。NSMutableStringによって返されるnull

文字列を印刷すると、nullが返されます。 .Mファイル内の.hファイルで

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を返していますか?

答えて

2

私はあなたが決して初期化していないと思います。次のようなもの:

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

...有効なオブジェクトがあることを確認しますか?

+0

ありがとう、私はstringWithStringを使わずに同様のことを試していました。 ;) – jarryd

+0

ああ、self.name = @ "";それをコンパイルする通常のNSString *に設定しますが、あなたが望むように動作しません。 –

1

コードのどこにでも「名前」の値を設定していますか?あなたの質問に貼り付けたコードでは、「名前」は決して設定されません。存在しないものに文字列を追加することはできません。つまり、nullに値を追加しようとすると、何も返されません。

私の答えは次のようだと思います:あなたが示したコードに基づいて、名前には何も割り当てられていません。文字列を '名前'に割り当てる場合、問題は他の場所にありますが、割り当てなどのコードを投稿する必要があります。

+0

NSStringとNSMutableStringの割り当てに違いはありますか? – jarryd