Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.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 是否在最新的Clang/LLVM中推断出所有权限定符?_Objective C_Clang_Llvm - Fatal编程技术网

Objective c 是否在最新的Clang/LLVM中推断出所有权限定符?

Objective c 是否在最新的Clang/LLVM中推断出所有权限定符?,objective-c,clang,llvm,Objective C,Clang,Llvm,所以,我错了,发现这两个都编译得很好: @property (nonatomic) UIButton* addButton; @property (nonatomic) CGRect keyboardRect; 您可能知道,默认的所有权限定符应该是strong,而且由于CGRect不能有该限定符,我猜它会被推断为不安全\u未恢复的。然而,我在铿锵文档中什么也没找到。这件事有记录吗?限定符强、弱和不安全_未恢复仅适用于ARC管理的对象(例如块、类型为id的对象等)。对于CGRect类型的属性,根

所以,我错了,发现这两个都编译得很好:

@property (nonatomic) UIButton* addButton;
@property (nonatomic) CGRect keyboardRect;

您可能知道,默认的所有权限定符应该是
strong
,而且由于
CGRect
不能有该限定符,我猜它会被推断为
不安全\u未恢复的
。然而,我在铿锵文档中什么也没找到。这件事有记录吗?

限定符
不安全_未恢复
仅适用于ARC管理的对象(例如块、类型为
id
的对象等)。对于
CGRect
类型的属性,根本没有所有权限定符

以下是Clang文档中的参考:


有关所有权限定的部分仅适用于可保留的对象指针类型。

非常有意义,感谢您花时间在文档中找到它(我找错了东西)。但是,您可以使用
\uuuuu unsafe\u unrepaired
限定非对象,这就是我没有在房间里看到大象的原因。我猜这是可能的,因为限定符什么都不做。这是不可取的。@valentiradu我想这是有道理的,你可以在任何东西上使用
safety\u unretained
,因为它基本上告诉ARC不要用指针做任何事情。我同意这有点奇怪,我不会指望。是的,这有点道理,但完全是多余的。有趣的是,关于这件事,我一生都在撒谎:)。我开始在ARC之前用
assign
声明非对象,然后用
safe\u unrepaired
声明非对象。从来没有停下来想一想!问题是,我在很多臭名昭著的代码中看到了这一点。事实上,现在我正在AQGridView和iCarousel中查看它。我需要做一个“如果我告诉你怎么办”的记忆:)很好,再次感谢!