Iphone UITableView对象泄漏:分配的对象稍后不会在此执行路径中引用,并且保留计数为+;1.

Iphone UITableView对象泄漏:分配的对象稍后不会在此执行路径中引用,并且保留计数为+;1.,iphone,objective-c,memory-management,memory-leaks,Iphone,Objective C,Memory Management,Memory Leaks,当使用Xcode的分析工具时,我收到以下关于此UITableView分配的内存泄漏警告- Object leaked: allocated object is not referenced later in this execution path and has a retain count of +1 有人遇到过这个警告吗?解决方案 谢谢 好吧,这是一个猜测。我已经很长一段时间没有研究遗留目标了。我一直在部署后续目标。但是您可以使用autorelease或手动释放UITableView。这样

当使用Xcode的分析工具时,我收到以下关于此
UITableView
分配的内存泄漏警告-

Object leaked: allocated object is not referenced later in this execution path and has a retain count of +1
有人遇到过这个警告吗?解决方案


谢谢

好吧,这是一个猜测。我已经很长一段时间没有研究遗留目标了。我一直在部署后续目标。但是您可以使用
autorelease
或手动释放
UITableView
。这样可能行得通

self.contentTableView = [[[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 300) style:UITableViewStyleGrouped] autorelease];
或者,如果您正在使用属性,则在
dealloc
方法中释放

[tableView release];

注意:我很长时间没有使用非ARC环境,我的语法可能(很可能)错误,您必须解决语法问题。

由于ARC不是您的选项,您需要在代码中遵循所有权规则。您已经使用
alloc
创建了一个对象,因此必须确保它在以后获得
版本。一种简单的方法是在实例化它并将其分配给属性时发送它
autorelease
,如:

self.contentTableView = [[[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 300) style:UITableViewStyleGrouped] autorelease];  

出于好奇,这段代码是您自己编写的,还是从外部库导入的?如果你是自己写的,为什么不使用?这有助于轻松高效地进行垃圾收集。谢谢,但我的应用程序的部署目标低于4.3
self.contentTableView = [[[UITableView alloc] initWithFrame:CGRectMake(0, 0, 320, 300) style:UITableViewStyleGrouped] autorelease];