強力なプロパティを宣言します。
@property (strong) NSString *message;
そして、私はメッセージを次のように設定しました:
self.message = [NSString stringWithFormat:@"xxxx %@",sth];
しかし、それはメッセージでクラッシュします:
*** -[CFString 保持]: 割り当て解除されたインスタンス 0x1015ea790 に送信されたメッセージ
プロパティを変更しても、strong-> copy してもクラッシュします。今、次を使用して修正しました:
self.message = [[NSString stringWithFormat:@"xxxx %@",sth] copy];
でも、いつもiOSで同じように書いているので、いまいち理解できません。
ちなみに、コードはココア、ノーアーク用です
アップデート1:
1 追加しました@synthesize message;
2 sth は例で、実際のコードは
self.message = [NSString stringWithFormat:@"xxxx %@", [[NSDate date] description]];
3 strong/copy プロパティのデフォルトの実装は次のようになることを覚えています。
- (void)setMessage:(NSString*)newMsg
{
if (message != newMsg)
{
[newMsg retain];
[message release];
message = newMsg;
}
}
だから私はプロパティ合成が私のためにコピー/保持を追加すると思います。それが私を混乱させるものです!