摘要: 您是否可以在迁移到iOS 5时添加我需要注意的事项清单? StackOverflow非常宝贵,因为我一直致力于升级到iOS 5.我发现了一些在Xcode 4.2之前我错过的非常基本的东西,我想知道其他“陷阱”可能潜伏着什么。
详细信息:本周iOS 5发货,我不得不对我的几个应用进行一些更改。由于新的ARC功能,Xcode 4.2在分析内存管理代码方面做得更好。 iOS 5更新是查看所有内存管理代码的重要点。新编译器还发现了早期编译器遗漏的许多其他问题。感谢Apple编译工程师。以下是有帮助的主要内容(其中许多内容也适用于早期版本的iOS)。
我遇到过一些可能的结果:
- (oneway void) release { }
我应该寻找潜在陷阱的其他建议吗?我觉得我的应用程序现在更加稳定,但我之前觉得它们非常好。
答案 0 :(得分:6)
1 /如果要更改大小,模态控制器的行为会有所不同。如果您需要不同大小的模态对话框,请考虑使用iOS 5子视图控制器。
2 /对于一个表,如果你返回nil节标题和正高度,在iOS 4中,标题被隐藏了。在iOS 5中,您必须为nil标题返回零高度。
3 / UDID已弃用。您可以使用CFUUIDCreate创建唯一ID并将其保存到您的设置中,但请注意,可以备份设备数据,然后将其还原到其他设备,从而使您拥有两个具有相同ID的设备。我通过使用属性kSecAttrAccessibleWhenUnlockedThisDeviceOnly将我的id保存到keychain来解决了这种情况。
关于您的清单: 应始终将[super viewDidUnload]作为viewDidUnload中的最后一个语句调用。逻辑与[super dealloc]中的逻辑相同。注意,你也应该在你的dealloc中调用[self viewDidUnload](如果你还没有在那里释放你的内存),因为它不是隐式调用的(虽然有时它是)。
根据我的实验,仪器中的泄漏检测不会报告在未指定属性名称的情况下合成的属性的泄漏。