我正在对正在创建的应用程序进行调试,但在运行仪器时发现了我无法理解的内存泄漏。
如果我尝试按照 Instruments 的建议修改代码,我的应用程序会因为以下原因而崩溃
发送到已释放实例的消息
有人能帮我吗?
- (void) objectAtIndex:(int)index {
SpecialObject *specialObj = [SpecialObject sharedInstance];
id model = [self.datasource objectAtIndex:index];
if ([model isKindOfClass:[ClassA class]]) {
ClassA *objA = (ClassA *)model;
specialObj.title = objA.title;
} else if ([model isKindOfClass:[ClassB class]]) {
ClassB *objB = (ClassB *)model;
specialObj.title = objB.title;
}
}
self.datasource
是一段NSMutableArray
时间specialObj.title
是一个NSString
它们被定义为@property(nonatomic, retain)
。
我的问题是 Instruments 告诉我这两个
ClassA *objA = (ClassA *)model;
ClassB *objB = (ClassB *)model;
是泄漏,但如果我释放objA
并且objB
我的应用程序崩溃。
谢谢你的帮助!