我遇到以下代碼的問題,其中Xcode標記內存問題。警告在代碼之下,在返回線上。有人知道爲什麼,我能做些什麼嗎?帶有+0保留計數的對象返回給調用者,其中+1(擁有)保留計數是預期的 - 爲什麼?
- (id)copyWithZone:(NSZone *)zone
{
NSData *archivedData = [NSKeyedArchiver archivedDataWithRootObject:self];
return [NSKeyedUnarchiver unarchiveObjectWithData:archivedData];
}
Mvariable.m:177:2:用0對象保留計數返回到呼叫者其中1(擁有)保留計數預計
Mvariable.m:177:9:方法返回具有+0保留計數的Objective-C對象
Mvariable.m:177:2:使用+0保留計數返回給調用方的對象
Mvariable.m:177:2:具有+0保留計數的對象返回到呼叫者,其中+1(擁有)保留計數預計
請注意,使用歸檔來複制對象絕對不是典型的。與通常的做法相比,它也很慢。 – bbum 2013-02-28 21:00:51
哦哇,我沒有意識到一個方法名稱的開始可以做到這一點,有多奇怪。感謝你的回答! – Tiago 2013-02-28 21:06:33
在過去,它只是一個慣例,沒有ARC,或者__strong和__weak的標記或者(__attribute __((ns_returns_autoreleased)))的句法甜味......所以我們必須保留以某種方式跟蹤事物... – 2013-02-28 22:02:53