我们什么时候在Objective-C中使用静态__unsafe_unretained?

时间:2017-03-04 00:20:15

标签: ios objective-c

我看到这段代码定义了一个常量,并且在理解使用方法时遇到了问题。

static __unsafe_unretained NSString * const kUserIdKey = @"USER_ID";

我假设__unsafe_unretained这里是弱者而没有为ios 4或更早的nil输出?这是正确的吗?为什么我们需要这个?

1 个答案:

答案 0 :(得分:2)

您对__unsafe_unretained的理解基本上是正确的 - 这样的引用是不受管理的,ARC将忽略存储在变量中的任何内容。

  

为什么我们需要这个?

你不是,在这个特定的例子中是没有意义的。常量NSString值是不朽的,它们永远不会被ARC收集。您可以使用kUserIdKey__strong__weak注释__unsafe_unretained,但不会产生任何影响 - @"USER_ID"将始终存在。