我可以有一个弱静态指针吗?



我可以有一个在objective-c中很弱的静态指针吗?我知道它会编译,但我想知道它的行为是否会像我期望的弱指针一样运行。

__weak static HMFSomeClass *weakStaticPointer;

是的,它的行为就像一个适当的弱指针:

__weak static NSObject *weakStaticPointer;
int main(int argc, char * argv[])
{
    @autoreleasepool {
        NSObject *obj = [NSObject new];
        weakStaticPointer = obj;
        NSLog(@"%@", weakStaticPointer);
        obj = nil; // object is deallocated -> weak pointer is set to nil
        NSLog(@"%@", weakStaticPointer);
    }
    return 0;
}

输出:

<NSObject: 0x100106a50>
(null)

此外,我在 Clang/ARC 文档中找不到任何禁止的限制要静态的弱指针。

相关内容

  • 没有找到相关文章

最新更新