Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 使用ARC,生命周期限定符赋值,不安全_未恢复_Objective C_Ios_Automatic Ref Counting - Fatal编程技术网

Objective c 使用ARC,生命周期限定符赋值,不安全_未恢复

Objective c 使用ARC,生命周期限定符赋值,不安全_未恢复,objective-c,ios,automatic-ref-counting,Objective C,Ios,Automatic Ref Counting,我对这两个资格赛有点困惑。。。 使用ARC而不是使用弱(即,如果我需要支持iOS 4),我可以使用不安全\u未恢复丢失自动置零功能。。。最终结果似乎类似于assign 我可以用分配交换不安全\u未保存的吗 这些限定词是一回事吗 苹果公司文档中关于这个论点的任何链接都会非常有趣。。。我只能找到几行关于限定符如何工作的详细信息 但是,要回答您的问题:分配和不安全不是一回事assign是一个属性属性,它告诉编译器如何合成属性的setter实现,而\uuuuUnsafe\uUnretained是一个

我对这两个资格赛有点困惑。。。 使用ARC而不是使用
(即,如果我需要支持iOS 4),我可以使用
不安全\u未恢复
丢失自动置零功能。。。最终结果似乎类似于
assign

  • 我可以用
    分配
    交换
    不安全\u未保存的
    
    
  • 这些限定词是一回事吗
苹果公司文档中关于这个论点的任何链接都会非常有趣。。。我只能找到几行

关于限定符如何工作的详细信息

但是,要回答您的问题:
分配
不安全
不是一回事
assign
是一个属性属性,它告诉编译器如何合成属性的setter实现,而
\uuuuUnsafe\uUnretained
是一个所有权限定符,它告诉ARC如何插入
retain
/
release
调用。但是它们是相关的:当声明一个属性时,
assign
意味着
\uuuu不安全\uu未恢复的所有权


在ARC之前,
assign
是默认的财产所有权限定符;但在启用ARC的情况下,可保留对象指针类型的默认值为
strong
。(对于标量和其他指针类型,
assign
仍然是默认值。)

是的,对于iOS 4.3,您应该使用
unsafe\u unretained
assign
,因为
不可用。请注意,具有这些生存期限定符的任何指针在解除分配后都不会自动归零(因此它们有可能成为悬空指针)。此外,我相信这可能在原始答案编写后发生了变化,但ARC中对象属性的默认限定符是
strong
assign
我认为此回答忽略了原始海报的问题,即
assign
safe\u unretained
(无双下划线前缀)属性属性。根据上面链接的文档的类型,这两个属性都映射到
\uu unsafe\u unretained
(带下划线)我认为唯一的区别是,在ARC下,对于非指针应该使用
assign
,对于指针类型应该使用
safe\u unretained
。在属性声明中,你不会真正看到safe\u unretained。对于非ARC,它可能是弱/strong或assign/strong。我唯一一次er used uuu unsafe u unrepaired(带2个下划线)用于在结构中保留对象指针:
struct s{uuuu unsafe unrepaired id obj;};
unsafe u unrepaired作为属性属性的目的是为assign提供一个看起来更可怕的同义词。逻辑是,如果它不安全,它应该看起来不安全。我喜欢“更可怕的同义词”---非常贴切的描述。:-)当然,重点是提醒大家注意在使用该房产时需要格外小心。在回答类似问题时,给出了非常好、清晰的解释: