gpt4 book ai didi

ios - 过渡到 iOS 5 时要注意什么

转载 作者:IT王子 更新时间:2023-10-29 07:51:55 26 4
gpt4 key购买 nike

总结: 您能否将迁移到 iOS 5 时需要注意的事项添加到我的 list 中? StackOverflow 在我努力升级到 iOS 时提供了无价的帮助5. 我发现了一些在 Xcode 4.2 之前我错过的非常基本的东西,我想知道还有什么其他“陷阱”可能潜伏着。

详细信息:随着本周 iOS 5 的发布,我不得不对我的几个应用程序进行一些更改。由于新的 ARC 功能,Xcode 4.2 在分析内存管理代码方面做得更好。 iOS 5 更新是审查所有内存管理代码的好时机。新编译器还发现了早期编译器遗漏的许多其他问题。感谢 Apple 编译器工程师。以下是有用的主要内容(其中许多内容也适用于早期版本的 iOS)。

  1. 确保 call [super dealloc] at the END of your dealloc methods ,而不是开始。
  2. 在 viewDidUnload 中,some people have reported bugs that require [super viewDidUnload] to be called at the end 不是您的 viewDidUnload 的开头。
  3. 了解保留计数、综合 setter 以及何时调用释放或自动释放。新的编译器会比旧的编译器指出更多的问题。 (我以为我很小心,但显然我不够小心。)Apple 的 memory management guide 是必读的——没有捷径。
  4. turn on zombies when debugging 是个好主意(在 Xcode 中,选择 Product | Edit Scheme... 并选择 Debug scheme;在 Diagnostics 选项卡上,选中 Enable Zombie Objects)。这可以帮助您找到尝试使用僵尸(您不应再使用的对象)。
  5. Leaks 工具也很有帮助。在配置文件模式下运行您的应用程序并选择 Leaks 模板。在 Instruments 窗口中,选择 Leaks instrument 并选中“Gather Leaked Memory Contents”框,这将帮助您查看代码中泄漏内存的来源。

我遇到过一些零碎的事情:

    - (oneway void) release { }

关于我应该寻找的潜在陷阱的任何其他建议?我感觉我的应用现在更稳定了,但我以前对它们感觉还不错。

最佳答案

1/如果您更改它们的大小,模态 Controller 的行为会有所不同。如果您需要不同大小的模态对话框,请考虑使用 iOS 5 subview Controller 。

2/对于表格,如果您返回零部分标题和正高度,在 iOS 4 中,标题被隐藏。在 iOS 5 中,您必须为 nil header 返回零高度。

3/UDID 已弃用。您可以使用 CFUUIDCreate 创建一个唯一的 ID 并将其保存到您的设置中,但请注意,可以备份设备数据然后将其恢复到另一台设备,从而使您拥有两个具有相同 ID 的设备。我通过将我的 ID 保存到具有属性 kSecAttrAccessibleWhenUnlockedThisDeviceOnly 的钥匙串(keychain)中解决了这个问题。

关于您的列表:[super viewDidUnload] 应始终作为 viewDidUnload 中的最后一条语句调用。逻辑与[super dealloc]中的相同。请注意,您还应该在 dealloc 中调用 [self viewDidUnload](如果您还没有在那里释放内存),因为它不会被隐式调用(尽管有时会被隐式调用)。

根据我的实验,Instruments 中的泄漏检测不会报告在未分配属性名称的情况下合成的属性的泄漏。

关于ios - 过渡到 iOS 5 时要注意什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7774196/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com