Objective-C:如果不释放对象,为什么重要?

Moo*_*ose 0 xcode memory-management objective-c

如果我正在搞乱XCode并尝试学习Objective-C,如果我经常忘记释放对象,它是否对我的系统造成任何威胁?不释放物体的真正后果是什么?如果我重新启动计算机,这些内存泄漏会持续存在吗?

我主要搞乱NSStrings和NSTimers以及类似的东西,没什么大不了的.我只是担心它弄乱了我的电脑.

有没有办法检查是否有未发布的对象?如果他们想检查一堆代码以查看是否存在任何这些内存泄漏,该怎么办?

Max*_*Max 6

首先:所有进程都在自己的虚拟内存中运行,因此当您终止进程时,无论有多少泄漏,都会将内存返回给系统.

第二.通过不释放对象,无法告诉系统应该释放对象,这就是为什么所有分配的对象将保留在内存中,即使它们已经是不必要的.

尝试从像C而不是Objective C这样的东西开始,因为我很明显你不知道指针,RAM等是什么.

  • 来自用户Firoze Lafeer的答案比你的恶毒恶意更受欢迎.我实际上知道指针是什么,并感谢你的建议,但我已经达到了至少初学者C和objective-c的速度.该问题旨在使反应者的具体回应成为非法.只是因为你讨厌你的生活并不意味着你需要把你的不快乐传播给别人(并在网上那里!) (3认同)
  • @Mooseman嘿,你的问题是什么?如果有人不知道在重新启动计算机时RAM会发生什么,那么这肯定是因为知识水平低.这不错,因为每个人都应该从基础开始.我刚刚告诉你从更简单的事情开始并且不想侮辱你,而你的评论绝对令人反感. (2认同)
  • @Mooseman冷静下来!:)麦克斯并没有试图侮辱你或任何东西.他的最后一句话可以更好地表达,但他的意思是说C中一个深刻而坚实的基础可以帮助人们更好地理解机器级别和RAM,因此他认为许多初学者会更好.如果他们是从C开始,而不是像Objective-C那样的话,那就是长期运行.这不是个人攻击或类似的事情.事实上,我认为你的反应比他的措辞不佳更糟糕. (2认同)

Chu*_*uck 6

唯一的"威胁"是你的程序会占用大量的可用内存,这将导致计算机运行速度变慢,硬盘驱动器会崩溃,直到系统在程序结束时回收内存.当程序使用更多内存时,它会使事情变得非常不愉快.没危险 - 真的很烦人.