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 中,...

24得票2回答
在init和dealloc方法中使用访问器的正确方式是什么?

我从多个渠道(包括stackoverflow.com、cocoa-dev、文档、博客等)了解到,在init和dealloc方法中使用访问器和设置器(foo,setFoo:)是“错误”的行为。我理解如果这样做会有可能会给观察该属性的其他对象带来困惑,这里提供了一个简单的例子(在这里)。 然而,出...

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

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

23得票1回答
为什么将正在被释放的对象设置为weak属性会导致崩溃?

在Clang的Objective-C自动引用计数中,我们看到以下内容: 对于__weak对象,lvalue将被更新为指向新的pointee,除非新的pointee是当前正在进行解分配的对象,在这种情况下,lvalue将被更新为null指针。这必须与对该对象的其他赋值、对该对象的读取以及新p...

22得票1回答
初始化属性,点符号表示法

在我的init方法中,使用点符号将retain属性初始化为nil是不好的想法吗? 对于任何普通的属性,例如:@property (nonatomic, retain) id foo; 假设在我的init方法中我设置了self.foo = nil。合成的方法首先会释放或自动释放foo(不确定其...

19得票2回答
UIPopoverController dealloc被调用 - ARC环境

当我第二次显示一个弹出控制器(在关闭它后再重新显示)时,我遇到了以下错误: Terminating app due to uncaught exception 'NSGenericException', reason: '-[UIPopoverController dealloc] reac...

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

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

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

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

15得票2回答
将实例ID打印到NSLog?

在一个类的dealloc方法中,我该如何打印出被释放实例的ID(或其他唯一标识)?- (void)dealloc { NSLog(@"_deallocing: ??"); [super dealloc]; } 这可行吗?我只是想在控制台中获得更多的反馈以帮助学习。 非常感谢 ...