Objective c Xcode 4.5.2是否会自动为合成BOOL getter加上is前缀
我刚刚注意到我有一个BOOL声明为Objective c Xcode 4.5.2是否会自动为合成BOOL getter加上is前缀,objective-c,xcode,boolean,Objective C,Xcode,Boolean,我刚刚注意到我有一个BOOL声明为@property(非原子,赋值)BOOL userAuthorized
@property(非原子,赋值)BOOL userAuthorized我正准备为它编写自己的getter,并使用-(BOOL)isUserAuthorized
因此我怀疑不再需要编写@property(nonatomic,assign,getter=isUserAuthorized)BOOL-userAuthorized
?是的,当您明确提到BOOL
属性的getter时,您不需要在属性中编写getter=isUserAuthorized
,而且您也不需要合成属性,因为xcode会自动为您进行合成。显然,如果您提供自己的BOOL
getter实现,编译器足够聪明,可以看出isActive
是active
属性的getter
尽管如此,如果您合成了getter,您仍然必须提供getter=isActive
,以便为getter使用该签名,而不是active
嗯,好问题。最后是一个标记为xcode
的问题,实际上是关于xcode的+1.我认为它与llvm编译器更相关,尽管它显然是随Xcode提供的。我认为Xcode可能是一个很好的猜测。看看加布里埃尔的答案。这不仅仅是一个好的猜测。需要将self.active
转换为[self-isActive]
这类工作由编译器完成。这里最酷的发现是,我们没有明确告诉他名字,为什么这是不正确的?LLVM 4.0在上半年自动合成属性。LLVM并没有特别处理像这样的BOOL
属性的合成。