gpt4 book ai didi

boolean 值的Objective-c dealloc

转载 作者:搜寻专家 更新时间:2023-10-30 19:52:54 26 4
gpt4 key购买 nike

我如何解除分配一个 boolean 值?

在下面以这种方式解除分配给了我一个警告:从'void *'分配给'BOOL'(又名'signed char')的整数转换指针不兼容

- (void)dealloc {
self.booleanVar = nil;
[super dealloc];
}

也许我应该澄清一下,这是一个从 NSObject 继承的简单类。

我正在使用您在 Cocoa Touch 类中看到的 self.var = nil 模式。假设它是一个 NSString* 而不是我应该在 dealloc 方法中使用 self.var = nil 或 [var release] 吗?我在这里有点困惑。

最佳答案

你不需要这样做。它不是一个对象。这也解释了警告,因为您试图将一个 nil 指针(基本上是对象的 NULL)分配给非对象。


关于你的第二个问题,是的。您可以将原始变量视为对象的一部分,因此当它被释放时,变量将不再存在。

但是当你在一个对象中有一个 NSString * 时,它只是一个指向另一个对象的指针。如果你 dealloc 前者,指针将被删除,而不是 NSString。没有人可能会指出它,它有点迷失在空气中,占据着内存。因此,在删除指针之前,如果您不再需要该对象,请向它发送一条释放消息。这是在 dealloc 方法中完成的,因为它被称为“删除”和对象,因此是删除所有其他不再使用的对象的好地方。

关于 boolean 值的Objective-c dealloc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6344162/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com