-3

我是Objective C的初学者。我知道java编程并且在介绍级别的课程中,内存释放不包括在内(我不知道是否有更高级的课程或java编译器处理这个)。但是,即使在介绍级别,我也需要为 Objective C 程序手动释放内存。我知道这样做是一个好习惯,但它有多重要?特别是如果我想开发 iPhone 应用程序,内存释放是否非常紧迫(不这样做会导致处理速度显着减慢)?通过 iPhone 应用程序,我不是在谈论具有梦幻般的视觉效果、高质量音效和其他可能使内存释放变得重要的东西的大型 3D 游戏。我只是想开发一些小工具,比如计算器,提醒,或者日记本。那么内存释放有多重要呢?

我认为在过去,当 C 语言程序在可能没有太多内存和处理速度的超级旧计算机上运行时,内存释放很重要。但考虑到 iPhone 是一款相当先进的设备,手动释放内存是不是有点过时了?

4

2 回答 2

6

我知道 java 编程,并且在介绍级别的课程中,不包括内存释放(我不知道是否有更高级的课程或 java 编译器处理这个)。

不完全是编译器,但 Java VM 有一个垃圾收集器,所以不必担心内存管理。

那么内存释放有多重要呢?

很重要。无论是运行时还是执行它的程序员,无论您使用 MRC 还是 ARC(在 Objective-C 中),您都应该通过正确管理内存来尽可能降低应用程序的内存指纹。

我认为在过去,当 C 语言程序在可能没有太多内存和处理速度的超级旧计算机上运行时,内存释放很重要。但考虑到 iPhone 是一款相当先进的设备,手动释放内存是不是有点过时了?

哦。我才明白为什么很多应用程序会占用我 iPhone 的所有可用 RAM。那是因为这是当今“开发者”的态度。我懂了...

于 2013-02-24T06:30:33.883 回答
-1

这取决于你在做什么。一般来说,正确释放内存是非常重要的,否则它会堆积并吃掉所有的内存。这对于像游戏这样的东西会很快发生,或者对于只有文本和数字的东西会非常缓慢地发生,尽管它仍然会在那里。然而,内存释放并不像听起来那么难。如果您使用的是 ARC,您几乎可以忘记它(但要注意有些奇怪的情况)。即使您不使用 ARC,Apple 也会为您做很多事情,例如在逻辑时间(例如在删除 viewController 时)对对象调用 release。

此外,内存管理通常只适用于使用面向对象的代码。如果你只是做一个简单的计算器,你可能不需要任何面向对象的东西,你可以在浮点数中工作。一个只处理浮点数的简单应用程序将没有内存管理。

于 2013-02-24T06:43:43.287 回答