Pet*_*rbo 3 boolean objective-c dealloc
我怎么dealloc一个布尔值?
以下方式解除分配给我一个警告:指向整数转换的不兼容指针从'void*'分配给'BOOL'(又名'signed char')
- (void)dealloc {
self.booleanVar = nil;
[super dealloc];
}
Run Code Online (Sandbox Code Playgroud)
也许我应该澄清一下,这是一个从NSObject继承的简单类.
我正在使用你在Cocoa Touch类中看到的self.var = nil模式.假设它是NSString*而应该在dealloc方法中使用self.var = nil还是[var release] ?我在这里有点困惑.
sid*_*yll 10
你不需要这样做.它不是一个对象.这也解释了警告,因为你试图将一个nil指针(基本上是对象的NULL)分配给一个非对象.
关于你的第二个问题,是的.您可以将原始变量视为对象的一部分,因此当它被解除分配时,变量将不再存在.
但是当你有一个NSString *对象时,它只是指向另一个对象的指针.如果你释放前者,指针将被删除,而不是NSString.没有人会指出它,它有点迷失在空中,占据着记忆.因此,在删除指针之前,如果您不再需要该对象,则向其发送一条释放消息.这是在dealloc方法中完成的,因为它被称为"删除"和对象,因此是一个删除所有其他没有用的对象的好地方.
| 归档时间: |
|
| 查看次数: |
2249 次 |
| 最近记录: |