为什么在iOS7.1 SDK中给出了委托属性,但是评论较弱?

时间:2014-08-31 13:19:09

标签: objective-c ios7 automatic-ref-counting

在ARC下,
assign隐含__unsafe_unretained所有权 weak隐含__weak所有权。

enter image description here

为什么委托属性在iOS7.1 SDK中被赋予assign但评论为weak

1 个答案:

答案 0 :(得分:3)

历史。在ARC之前,您使用assign表示“弱”(非保留)引用。 “弱”只是意味着“我不会将保留称为保留”,这意味着assign

在属性之前,我们只知道名为delegate的内容没有按惯例调用retain。其他非保留属性需要某种文档。

一直在努力清理iOS SDK以符合更现代的惯例,但仍有一些地方使用较旧的方法。我不确定他们为什么在这里使用id,但这可能是因为正式和非正式协议的旧习惯。在ObjC 2之前,您无法在协议中使用可选方法,因此您通常使用非正式协议(即您传递了一个裸id,并检查它是否响应了您所需的内容)。在这种情况下经常使用这种评论协议的方式。 (并不是说这就是这里的原因;我相信UIAlertViewController会发布ObjC 2.只是一个需要很长时间才能完成SDK的事情的例子。)