Objective-c dealloc的布尔值
发布时间:2020-12-16 10:19:21 所属栏目:百科 来源:网络整理
导读:我如何解除布尔值? 以下方式解除分配给我一个警告:指向整数转换的不兼容指针从’void *’分配给’BOOL'(又名’signed char’) - (void)dealloc { self.booleanVar = nil; [super dealloc];} 也许我应该澄清一下,这是一个从NSObject继承的简单类. 我正在使
我如何解除布尔值?
以下方式解除分配给我一个警告:指向整数转换的不兼容指针从’void *’分配给’BOOL'(又名’signed char’) - (void)dealloc { self.booleanVar = nil; [super dealloc]; } 也许我应该澄清一下,这是一个从NSObject继承的简单类. 我正在使用你在Cocoa Touch类中看到的self.var = nil模式.让我们说如果它是一个NSString *而不是我应该在deallocmethod中使用self.var = nil或[var release]?我在这里有点困惑. 解决方法
你不需要这样做.它不是一个对象.这也解释了警告,因为你试图将一个nil指针(基本上是对象的NULL)分配给一个非对象.
关于你的第二个问题,是的.您可以将原始变量视为对象的一部分,因此当它被解除分配时,变量将不再存在. 但是当你在一个对象中有一个NSString *时,它只是一个指向另一个对象的指针.如果取消前者,则会删除指针,而不是NSString.没有人会指出它,它有点迷失在空中,占据着记忆.因此,在删除指针之前,如果您不再需要该对象,则向其发送一条释放消息.这是在dealloc方法中完成的,因为它被称为“删除”和对象,因此是一个删除所有其他没有用的对象的好地方. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |