NSArray型のプロパティを使用しています。次に、NSArrayの値を初期化または設定しようとしています。私がの略語をに割り当てると、出力が得られます。しかし、私がという長い初期化スタイルで試しているとき、結果が得られません。後者にとって正しい方法は何でしょうか?ここでNSStringのNSArrayを初期化する方法は?
は、コードスニペットです:
@property NSArray * moods;
//shorthand assignment
[email protected][@"Happy",@"Sad"];
NSLog(@"Hello %@",[self moods]);
これが機能しています。しかし、私が試したときに:
//long initialization style
[[self moods]initWithObjects:@"Happy",@"Sad", nil];
NSLog(@"Hello %@",[self moods]);
これは同じ方法ではありません。私に何かを提案してください。
のNSLogあなたはどちらの場合にもなっているとは何ですか?違いは見たことがありますか? –
@TejaNandamuriこの場合、結果は空白になります。 '[[self moods] initWithObjects:@" Happy "、@" Sad "、nil];' – nayem
最初のスニペットの構文は「オブジェクトリテラル」と呼ばれます。 2番目の形式は有効ではありません。他の答えで説明されているように、あなたは何かをself.moodsに割り当てる必要があります。 –