Ios UITableCell AccessoryView:将AccessoryView设置为等于UIImageView无限循环

Ios UITableCell AccessoryView:将AccessoryView设置为等于UIImageView无限循环,ios,uitableview,uiimageview,accessoryview,Ios,Uitableview,Uiimageview,Accessoryview,编辑:我自己已经找到了答案,但这是给其他需要的人的: UIImageView无法共享,因此每个可见单元格都需要对每个UIImageView进行不同的实例化。现在你知道了 我有一个自定义表,它有两种类型的单元格。一个单元格刚刚设置为在复选标记类型的正常附件之间切换。另一个单元格设置为具有自定义图像作为附件类型。选择此选项后,附件图像将更改为相反类型,显示“邀请”或“邀请”消息 我已经将错误代码缩小到以下代码,可以在我的tableView中找到:cellForRowAtIndexPath委托方法 i

编辑:我自己已经找到了答案,但这是给其他需要的人的: UIImageView无法共享,因此每个可见单元格都需要对每个UIImageView进行不同的实例化。现在你知道了

我有一个自定义表,它有两种类型的单元格。一个单元格刚刚设置为在复选标记类型的正常附件之间切换。另一个单元格设置为具有自定义图像作为附件类型。选择此选项后,附件图像将更改为相反类型,显示“邀请”或“邀请”消息

我已经将错误代码缩小到以下代码,可以在我的tableView中找到:cellForRowAtIndexPath委托方法

if(indexPath.section == 0){
    cell = [tableView dequeueReusableCellWithIdentifier:self.directCellID];
    cellValue = [self.contactsUsingApp objectAtIndex:indexPath.row];
    cell.imageView.image = [self getContactImage:indexPath.row];
//vvvvvvvvvvvvvvvvv This is the section at fault vvvvvvvvvvvvvvvvv
    if([self.selectedContactsUsingApp containsObject:indexPath])
        cell.accessoryView = self.invitedStatus;
    else
        cell.accessoryView = self.notInvitedStatus;
//^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^  
}
如果我把那部分注释掉,我不再有失控的内存使用(模拟器告诉我,有某种恒定的分配在进行,从40Mb开始,它就超过了1.29Gb),但是,很明显,图像不再显示

如果有问题,UIImageView的初始化如下:

UIImage *invite = [self imageWithImage:[UIImage imageNamed: @"invite_btn.png"] scaledToSize:CGSizeMake(40, 20)];
UIImage *invited = [self imageWithImage:[UIImage imageNamed: @"invited_btn.png"] scaledToSize:CGSizeMake(40, 20)];
self.notInvitedStatus = [[UIImageView alloc]initWithImage:invite];
self.invitedStatus = [[UIImageView alloc]initWithImage:invited];
(imageWithImage:scale是一个函数,它将调整大小的图像返回到适当的比例,以说明此处找到的视网膜:)

当我选择其中一个单元格时,也会发生相同的冻结,因为我的tableView:DidSelectRowatineXpath方法的工作逻辑与初始化方法相同


帮助?

我自己已经找到了答案,但这里是给其他需要的人的:UIImageView无法共享,因此每个可见单元格都需要对每个UIImageView进行不同的实例化。现在你知道了。

在什么情况下你会重新加载表格?如果你找到了自己的答案,那么你应该发布一个实际的答案,而不是用答案更新问题。要么这样,要么删除这个问题。谢谢你的建议。我不知道我真的能做到。