gpt4 book ai didi

iphone - Obj-c IOS 内存管理

转载 作者:行者123 更新时间:2023-11-29 05:05:44 25 4
gpt4 key购买 nike

问题#1:通常,如果没有必要,我绝不会释放对象。假设 stringWithUTF8String 本身有一个自动释放,我不必执行“return [... autorelease]”,对吗?

-(NSString*)nonNullDBString:(const unsigned char*)value {
if(value == nil) {
return @"";
} else {
return [NSString stringWithUTF8String:(char *)value];
}

问题#2:在我的类(class)中,我有属性:“const uint8_t *bytes;”。在 dealloc 方法中,我必须调用“bytes = nil;”或“免费(字节);”,或者什么都没有?

问题 #3:对于我的类中的 @property(nonatomic, keep) 变量,dealloc'ing 的最佳实践是什么,是“self.foo = nil;”或“[foo release](我现在正在做的事情)”。此外,我不想搞乱 KVO 问题,无论它们是什么......

最佳答案

A1) 是的。您的代码片段是正确的。

A2) 如果您malloc对其进行了malloc,则调用free(毕竟它是C)。无需执行 foo = nil - 您的对象在从 dealloc 返回时就会死亡,没有人关心这个指针值是什么了。

A3) [foo release]; .

关于iphone - Obj-c IOS 内存管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5364969/

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