【发布时间】:2012-08-09 10:46:07
【问题描述】:
@property (nonatomic, assign) Class aClass;
或
@property (nonatomic, retain) Class aClass;
注意:“类”是objc.h中定义的“类”
在dealloc 方法中是否需要release?
【问题讨论】:
-
您可以简单地使用 ARC,实际上鼓励您使用 ARC。它应该是非原子的,强大的。作为一个好习惯,你应该在 viewdidunload 中将其设为 nil
-
@LuisOscar ARC 并不比 MRC 好,实际上是一样的。并且
nilviewDidUnload中的某些内容仅在它是 IBOutlet 时才被推荐,这显然不是这里的情况。 -
谢谢,对我糟糕的英语感到抱歉。我擅长 objc 的内存管理。但我的问题是如何使用 Class 作为类的属性。
-
@Sulthan 根据苹果的 Objective-C 自动引用计数 (ARC) 使内存管理成为编译器的工作。通过使用 Apple LLVM 编译器启用 ARC,您将永远不需要再次键入 retain 或 release,从而大大简化了开发过程,同时减少了崩溃和内存泄漏。编译器对您的对象有一个完整的了解,并在每个对象不再使用时立即释放它,因此应用程序运行速度与以往一样快,性能可预测且流畅。
-
@Sulthan 告诉我这是否没有让它变得更好,特别是对于刚接触 ios 开发的人(可以从问题中看出)。关于第二件事,不,你也错了。如果它是一个 IBOutlet,通常最好将其设为弱引用,因为视图已经有一个指向它的强指针。在内存不足的情况下,您可以在 viewdidunload 中清零所有东西,在这种情况下,您应该清零所有可以轻松重建的东西(通常是 viewDidLoad 中的东西)。它本身不是一个 dealloc 函数。
标签: objective-c ios class