gpt4 book ai didi

objective-c - 在 objc_SetAssociatedObject 中使用非 id 指针作为值是否可以?

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

正如标题所说。如果我这样做,不会立即出问题:

- (void) associateSelector:(SEL)value withPointer:(void*)key
{
objc_SetAssociatedObject(self, key, (id) value, OBJC_ASSOCIATION_ASSIGN);
}

有什么充分的理由要谨慎使用它吗?

最佳答案

您正在以文档未明确支持的方式使用 API。因此,当它在 OS X/iOS 的下一次更新中出现故障时,您不能提示。这是要谨慎的原因之一。

The documentation表示 OBJC_ASSOCIATION_ASIGN 设置了弱引用。这意味着垃圾收集情况下的一件不平凡的事情,所以要小心。

如果有一种官方支持的方式来做事,我会更喜欢它。在您的情况下,使用 NSStringFromSelector 会立即支持您的代码。

关于objective-c - 在 objc_SetAssociatedObject 中使用非 id 指针作为值是否可以?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5998814/

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