8得票1回答
在dealloc方法中将delegate设置为nil

在Objective-C中,如果一个对象将自己设置为另一个对象的代理,它应该在其dealloc方法中将该对象的代理设置为nil,以避免在它被释放后继续接收消息。 然而,当使用Xcode实用程序Accessorizer生成存根代码时,它也会在具有代理实例变量的类的dealloc方法中添加del...

24得票5回答
iPhone - dealloc - Release vs. nil

想知道有经验的人能否更详细地解释一下这个问题。我已经看到过一些例子,但是我还是不太理解。 [view release]; view = nil; ....在 (void) dealloc 内部。 这两者有什么区别,哪种更好?什么是最好的方法? 在进行 retainCount 测...

11得票2回答
Objective C - 全局静态变量在哪里释放?

或者,+(void)initialize的相反是什么? 这是我的情况: 我有一个名为Unit的类,其-(id)initWithName:函数从全局NSDictionary中获取数据,该字典被惰性创建,在Unit.m文件中定义为static NSMutableDictionary *unit...

18得票1回答
如果一个函数返回一个UnsafeMutablePointer,那么我们需要负责销毁和释放它吗?

例如,如果我写下这段代码: var t = time_t() time(&t) let x = localtime(&t) // returns UnsafeMutablePointer<tm> println("\(x.memory.tm_ho...

19得票5回答
在UIViewController中添加和移除NSNotificationCenter的观察者

查看了各种苹果的例子(例如Add Music),在这些例子中我发现他们在viewDidLoad中向默认的NSNotificationCenter添加观察者,然后在dealloc中将它们删除。这似乎很危险,因为viewDidLoad可能会被多次调用而没有调用dealloc。这将导致同一观察者多次...

8得票3回答
使用ARC和代码块方法时,NSNotificationCenter的视图控制器dealloc未被调用

当我在我的视图控制器的-viewDidLoad:方法中使用-addObserverForName: object: queue: usingBlock:来监听NSNotificationCenter时,-dealloc方法最终没有被调用。(当我移除-addObserverForName: ob...

10得票1回答
iOS: 如何在ARC下销毁一个单例?是否需要这样做?

我有一个单例类,它会累积数据直到将这些数据写入我的数据库(如果你想知道为什么我要以这种方式实现,请参见这里)。在保存数据后,我想销毁这个单例。在ARC中我该如何做?或者我是多虑了,我需要销毁它吗? *你可能会说这是这个问题的重复,但这里被接受的答案并不具体,无法提供帮助。它说"你可以声明一个显...

211得票1回答
自定义dealloc和ARC(Objective-C)

我在我的iPad应用程序中有一个“切换语言”功能,它使用观察器。每个视图控制器在其viewDidLoad:期间向我的观察器注册自己。- (void)viewDidLoad { [super viewDidLoad]; [observer registerObject:self]...

151得票6回答
Swift中的dealloc

我希望在视图控制器的生命周期结束时执行一些清理工作,即删除一个NSNotificationCenter通知。实现dealloc会导致Swift编译器错误:Cannot override 'dealloc' which has been marked unavailable 在 Swift 中,...

8得票2回答
dealloc方法除了释放内存外,还应该做什么?

我在工作中接手了一个iPhone应用程序,由于我刚接触Objective-C,所以还不太熟悉。我遇到了类似于以下代码的内容: - (void) dealloc { [[StaticObject sharedObject] showSomeDialog]; [super de...