gpt4 book ai didi

iphone - 将具有 "Assign"属性的对象设置为 nil

转载 作者:行者123 更新时间:2023-12-03 16:27:44 25 4
gpt4 key购买 nike

如果我有一个用“Assign”属性定义的变量,那么可以在 dealloc 方法中将它们设置为 nil 吗?

@property (nonatomic, assign) id test;

- (void)dealloc {
self.test = nil;
}

最佳答案

最好直接释放ivar。如果子类重写属性的 setter 方法,则您的对象可能会泄漏,因为您的 setter 未被调用。考虑:

@interface ClassA
@property (readwrite, retain) id anObject;
@end

@interface ClassB : ClassA
@end

@implementation ClassA
@synthesize anObject;

- (void)dealloc {
self.anObject = nil;

[super dealloc];
}
@end

@implementation ClassB
- (void)setAnObject: (id)anObject {
// do nothing!
}
@end

ClassB 的实例将泄漏 anObject!

关于iphone - 将具有 "Assign"属性的对象设置为 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4741808/

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