我犯了一个意外的错误,发现它仍然有效。我只是在这里的视图上重新创建它来演示。忽略我使用的属性和我正在分配的值。
self.view. frame = CGRectZero;
self.view. tag = 23;
NSLog(@"%@",NSStringFromCGRect(self.view.frame));
NSLog(@"%i",self.view.tag);
编译器如何看待这个并且好了?
答案 0 :(得分:4)
因为在C和Objective-C中,令牌之间的空格并不重要。解析源文本时,编译器会反复调用lexer(并builds an abstract data structure表示源代码)。词法分析器函数只对非空格标记感兴趣(有一些偏差,但这种观察结果往往是正确的),然而你组织代码,
object.member
和
object .member
和
object. member
和
object . member
将被识别为相同的令牌序列:<ident> <memberof> <ident>
。