5

在阅读其中一本 iOS 5 书籍时,我遇到了这样的信息:

“虽然 ARC 可以让您更轻松地编写应用程序而无需担心对象管理,但许多第三方库仍然需要手动释放对象。对于本书而言,所有项目都是在关闭 ARC 的情况下创建的 (...)”。

我是 iOS 开发的新手,我不知道如何解释它。了解 iOS 的内存管理似乎是非常(非常)重要的事情,但我应该明白,ARC 只是一个不错的功能,我必须在不学习它的情况下开始,因为它太新了,无法支持或无法使用很多情况?

4

6 回答 6

12

帮自己一个忙,使用 ARC。这是迄今为止在过去五年中发生的对该语言的最佳补充。它让您以更具声明性而非程序性的方式处理内存管理,从而使您免于编写大量“样板代码”。

这并不是说学习手动内存管理不重要:你一定要知道它是如何工作的,并且能够阅读没有 ARC 编写的代码。但就您新开发的代码而言,您应该继续使用 ARC,因为手动内存管理会白白浪费您的大量开发工作。

更好的是,给自己买另一本书:看来作者没有足够的时间来修改 ARC 的示例,所以他们插入了一个相当蹩脚的借口,关于“其他图书馆”。

于 2013-03-05T11:36:47.583 回答
1

我仍然更喜欢创建非 ARC 项目。

但几周前我写了这篇很棒的文章http://www.raywenderlich.com/5677/beginning-arc-in-ios-5-part-1 听起来这是苹果提供的很棒的功能。

所以,我想试试。我的很多大学已经在使用 ARC,我认为它效果很好。

但是,我想说的一件事 - ARC 并不意味着您必须编写代码并且不必担心内存管理。ARC - 这是另外一回事,ARC 也有自己的内存管理规则/法律,您在编写代码时必须牢记这些规则。

于 2013-03-05T11:36:11.407 回答
1

这是个人选择。

如果您使用 ARC,则无需担心内存管理。

但是,如果您知道如何使用 MRC(手动保留计数)制作成熟的应用程序,那么使用 ARC 也不错。

即使在ARC中的某个特定时间,你也需要分配和释放内存,因此必须学习MRC。

于 2013-03-05T11:38:12.130 回答
1

好吧,如果你是 Objective C 的新手,你能做的最好的事情就是在你的项目中使用 ARC。ARC 是稳定的,并且使内存管理变得相当容易。

这些书是正确的,有一些 3rd 方库仍然遵循手动内存管理。但是这些库中的大多数现在也提供 ARC 版本。如果没有,您仍然可以在 ARC 项目中使用它们,方法是将其添加为静态库项目。您也可以针对特定文件禁用 ARC

我在 ARC 之前的日子里开始了 iOS 开发,起初对我来说手动内存管理很困难。所以对于初学者来说,有了 ARC,绝对是 ARC。有空时尝试了解手动内存管理。

免责声明:我仍然很少使用 ARC,但对于初学者来说,ARC 是要走的路。

于 2013-03-05T11:38:46.770 回答
1

ARC 很好用,作为初学者非常有帮助。当我们包含第三方库时,您可以选择禁用该特定文件(或)库的 ARC。

为特定文件禁用 ARC:

-fno-objc-arc添加到您不需要 ARC 的文件的编译器标志中。在 Xcode 4 中,您可以在 target -> Build Phases -> Compile Sources 下执行此操作。

如果您想从一开始就了解内存管理,请禁用 ARC 并自己尝试。这可能对你有很大帮助

于 2013-03-05T11:38:54.997 回答
1

ARC 是 Apple 提供的最佳功能之一。

ARC 负责处理与内存管理问题相关的开销, Apple 也建议使用 ARC。

与其不更好地使用它,不如充分利用它并避免内存开销

我建议您使用 ARC,但请研究 ARC 如何在后台管理内存。

But when you need to develop applications with deployment target below ios 4.0 You need to manually retain-release memory.

于 2013-03-05T11:43:43.040 回答