编译器看起来很开心,我对可读性略有提高感到满意,但Xcode的代码完成在以这种方式调用时并不特别识别alloc
和class
:
MyClass* object = [MyClass.alloc initWithBounty:bounty];
<...>
if ([object isKindOfClass:MyClass.class])
<...>
所以我想知道上面有什么问题,如果有的话?
答案 0 :(得分:3)
嗯,主要是错误的是点符号用于检索概念属性的东西。 alloc
不访问该类的属性;它创造了一个对象。将它用于任何零参数方法都不是更具可读性 - 这让人感到困惑。
MyClass.class
实际上没有问题,但是没有办法在类上声明属性,并且它们通常不被认为具有属性,因此自动完成显然不会不支持它。
答案 1 :(得分:1)
最初添加点符号用于属性访问。所以你只能将它们用于
否则,最近的编译器会抱怨它。
无论如何,我同意@nhgrif在非属性方法上使用点符号不是一个好习惯。