我有一个关于目标 c 的问题。我买了一本关于目标 c 的书。我是 Objective c 的新手,这本书包括许多关于内存管理的教程。我有 mac 版本 10.7.5。所以在关于 dealloc 的教程中,xcode 说我“ARC 禁止显式发送‘dealloc’的消息”。所以我在许多论坛中搜索这个错误。在这些论坛上,很多人说[super dealloc]继承自NSObject是旧的,新版本的系统会自动进行内存管理。该书于 2011 年出版。
我希望每个人都能理解我。
先感谢您。
我有一个关于目标 c 的问题。我买了一本关于目标 c 的书。我是 Objective c 的新手,这本书包括许多关于内存管理的教程。我有 mac 版本 10.7.5。所以在关于 dealloc 的教程中,xcode 说我“ARC 禁止显式发送‘dealloc’的消息”。所以我在许多论坛中搜索这个错误。在这些论坛上,很多人说[super dealloc]继承自NSObject是旧的,新版本的系统会自动进行内存管理。该书于 2011 年出版。
我希望每个人都能理解我。
先感谢您。
iOS 有一个新的(ish)系统,称为 ARC,它会自动向您的对象发送 release/retain/dealloc 等消息。你可以在这里阅读更多关于它的信息。
回答您的问题时要注意的重要一点是 ARC 是可选的。你可以使用它,但你不必这样做。(当创建一个新的 XCode 项目时,你要么勾选“启用自动引用计数”按钮,要么不勾选。)
因此,回答您的问题:如果您在项目中使用 ARC,是的,dealloc
不再需要。如果您不使用 ARC,您仍然需要管理自己的内存。这取决于您如何设置项目。