gpt4 book ai didi

ios - 类保留计数

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:31:13 25 4
gpt4 key购买 nike

这里发布了很多关于避免使用 block 的保留循环,但是在使用类和类方法时呢?假设我有这样的类(class):

// MyClass.h

+ (void)doSomethingAsynch:(void (^)(void))block;
+ (void)doSomethingElse;

来电者想说的是:

[MyClass doSomethingAsynch:^{
[MyClass doSomethingElse];
}

调用者必须声明一个 MyClass 的 unsafe_unretained 副本吗?或者是像单例这样的类,它不会增加它的保留计数?既然我们希望它始终存在,那么如果我们将类的保留计数发送到月球有什么关系吗?

最佳答案

[[NSObject class] retainCount] 返回 NSUIntegerMax,所以,是的,类被实现为单例并且可能覆盖 release 作为一个 no -op.

附录:

objc runtime implementation在第 1659 行的 NSObject 中,您发现 ...

+ (id)retain {
return (id)self;
}

... 验证 [NSObject retain] 什么都不做。

关于ios - 类保留计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14267887/

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