私はdeallocメソッドで保持されているプロパティをどのようにして長期間放つことができますか?あなたが見ることができるように、私のサンプルコードでdeallocメソッドの2つのバージョンがある保持されているプロパティを解放する方法
@interface MyClass: NSObject
{
//...
NSString *myStr;
//...
}
@property (retain, nonatomic) NSString *myStr;
//...
@end
@implementation MyClass
@synthesize myStr;
//...
//version 1 of dealloc
-(void)dealloc
{
[myStr release];
//...
}
//version 2 of dealloc
-(void)dealloc
{
self.myStr = nil;
}
//...
@end
:明瞭にするため、ここではいくつかのサンプルコードです。私が懸念している限り、第1のものは第2のものより機械コードが少なく、従ってより速い。しかし、以前は、保持されたプロパティを2番目の方法で処理することは良い習慣であると聞きました。つまり、selfキーワードを使用してsetterを呼び出すことによって、それをnilに設定しています。誰もが、これらが本当であるかどうかを教えてもらえますか?そうであれば、「良い習慣」に固執すべきですか、あるいは「良い習慣」に関係なく私のコードをより速くすることはできますか?
ありがとうございます。
ありがとうございました。私は "self.myStr = nil;"ということを学びました。 "[myStr release]; myStr = nil;"(ここでは2つのステートメント)になります。だから私は「[myStr release];」(単一のステートメント)が速くなると考えました。ところで、「副作用」によって、ここでは正確に何を意味していますか? – xuxu
@xuxu:KVO通知、元に戻すスタックの変更 - そのようなこと。 – Chuck