Ios 解除锁定后检查回调内的对象
请耐心听我解释 我在UITableViewCell中有一个HJManagedImageV实例。 我将其回调设置为self,一个实现 所需协议(HJManagedMageVDelegate) 当我导航到然后快速离开此控制器时,回调是 最终在不再存在的对象上激发。(HJManagedImageV) 保留其代理。) 问题是在回调中我无法检查 如果对象在未获得EXC\u BAD\u访问权限的情况下有效Ios 解除锁定后检查回调内的对象,ios,uitableview,exc-bad-access,Ios,Uitableview,Exc Bad Access,请耐心听我解释 我在UITableViewCell中有一个HJManagedImageV实例。 我将其回调设置为self,一个实现 所需协议(HJManagedMageVDelegate) 当我导航到然后快速离开此控制器时,回调是 最终在不再存在的对象上激发。(HJManagedImageV) 保留其代理。) 问题是在回调中我无法检查 如果对象在未获得EXC\u BAD\u访问权限的情况下有效 -(void)managedImageSet:(HJManagedImageV*)mi {
-(void)managedImageSet:(HJManagedImageV*)mi {
mi.callbackOnSetImage = nil;
if(mi != nil && mi.image != nil) { // EXC_BAD_ACCESS when checking mi.image
[mi setImage:[mi.image roundedCornerImage:9 borderSize:0]];
}
}
以下是坠机时的mi:
mi HJManagedImageV * 0x0022fae0
UIView UIView
oid id 0x00000000
url NSURL * 0x00000000
moHandler HJMOHandler * 0x00000000
image UIImage * 0x00000000
imageView UIImageView * 0x00000000
callbackOnSetImage id 0x00000000
callbackOnCancel id 0x00000000
callbackOnError id 0x00000000
isCancelled BOOL false
loadingWheel UIActivityIndicatorView * 0x00000000
onImageTap NSInvocation * 0x00000000
index int -1
modification int 0
我不明白为什么检查mi.image会让我崩溃。除此之外,我如何判断mi是否仍然可用?使用委托模式的对象不会比其委托更长寿,这是一种良好的设计实践。但是,如果这是一个不必要的错误,那么应该确保在释放委托本身时将对象的委托ivar设置为nil 换句话说,,
代理常常碰巧是其对象的所有者。如果委托人希望其子女比自己长寿,则其所有者有责任清除委托IVAR。使用委托模式的对象不会比其委托人长寿,这是良好的设计实践。但是,如果这是一个不必要的错误,那么应该确保在释放委托本身时将对象的委托ivar设置为nil 换句话说,, 代理常常碰巧是其对象的所有者。然后,如果委托人希望自己的孩子活得比自己长,那么委托人有责任清除委托人的IVAR