私はクラスSomeClass
を持っています。プロパティはコピーを使用しているときだけ奇妙なメモリ
@property(retain) SomeObject *SomeProperty;
として宣言し、私はSomeClass
のオブジェクトおよびそれ以降のリリースを割り当てると
@synthesize SomeProperty = SomeProperty_;
として定義されているが
SomeProperty_ = [[SomeObject alloc] initWithSomething];
:そのinit
に私のような行がたくさんありますそれらは、すべて正常に動作し、メモリリークはありません。私はSomeClass
のオブジェクトをコピーし、後で
SomeProperty_ = [[SomeObject alloc] initWithSomething];
のように、すべての行をそれを解放するときしかし、楽器のメモリリークとしてマークされています。私はこれをたくさん使うとメモリの警告を受け、後でクラッシュするのでこれも正しいです。
しかしように私はdealloc
という名前のメソッドを作成する場合:すべてが同様にコピーしていないメモリの警告または漏洩して結構です
-(void) dealloc
{
self.SomeProperty = nil;
[super dealloc];
}
。
私はこれが原因で私のcopy
実装であると思う:
-(id)copy
{
SomeClass *copy = [[SomeClass alloc] init];
copy.SomeProperty.somePOD = self.SomeProperty.somePOD;
return copy;
}
どこに問題がありますか?カスタムなしで解決するにはどうすればいいですかdealloc
?
あなたはiOSの 'copy'メソッドを壊していることは知っていますか? – Abizern
@Abizern:私は何ですか?私はobjective-cでメソッドをコピーする意味があることを知っていますが、私がコピーのカスタム実装が必要な場合、これを行うことはできますか? – Dani
[NSCopying](http://developer.apple.com)を見てください。com/library/ios /#documentation/Cocoa/Reference/Foundation/Protocols/NSCopying_Protocol/Reference/Reference.html)プロトコル – Abizern