我在以下代码中有泄漏:
-(id)initWithCoder:(NSCoder *)aDecoder {
if (self = [super init]) {
self.Tag = [aDecoder decodeObjectForKey:KEY_TAG];
self.ParentTag = [aDecoder decodeObjectForKey:KEY_PARENT_TAG];
self.Order = [aDecoder decodeObjectForKey:KEY_ORDER];
self.OrderFavorite = [aDecoder decodeObjectForKey:KEY_ORDER_FAVORITE];
self.isFavorite = [aDecoder decodeObjectForKey:KEY_IS_FAVORITE];
self.isPurchased = [aDecoder decodeObjectForKey:KEY_IS_PURCHASED];
self.Titel = [aDecoder decodeObjectForKey:KEY_TITEL];
}
return self;
}
泄漏出现在设备上的仪器中:
self.Titel = [aDecoder decodeObjectForKey:KEY_TITEL];
KEY_TITEL是:
#define KEY_TITEL @"Titel"
和self.Titel是:
@property (nonatomic, retain) NSString *Titel;
它是合成的,它以dealloc发布。
我不知道泄漏的来源。 你能帮帮我吗...
谢谢你 XNZ答案 0 :(得分:3)
你错误地解释了仪器告诉你的内容。
不告诉您泄漏对象的位置。
它 告诉你在哪里创建了一个最终泄露的对象。
相应地重新分析来自Instruments的数据。 (您可能错过[Titel release]
方法中的-dealloc
来电
答案 1 :(得分:0)
您是否在执行Titel
之前为initWithCoder
分配了值?也许在超级班?
泄漏似乎与initWithCoder
执行没有关联,而是与之前的任务相关联。