有关访问存储在NSMutableArray中的对象属性的语法问题

时间:2010-02-11 02:01:42

标签: objective-c syntax nsmutablearray

有人可以解释为什么同一个表达式的第二个语法不起作用?如果你需要一些背景知识,manyViews是一个指向加载了UIView对象的NSMutableArray的指针。

[[manyViews objectAtIndex:0] setFrame:CGRectMake(30,30,100,20)];  // works as intended

[manyViews objectAtIndex:0].frame = CGRectMake(30,30,100,20);     // compiler does not recognize the "frame" member

1 个答案:

答案 0 :(得分:1)

编译器的当前限制(gcc和Clang)。点符号无可救药地重载,编译器认为您正在尝试在结构中分配字段。 id不是结构,因此它给出了错误。我自己使用它,但我仍然说点符号肯定是ObjC2中最糟糕的添加。它给程序员带来了很多困惑,正如我们在这里看到的那样,经常会给编译器带来困惑。

gcc或clang的更高版本可能会找到一种正确解析它的方法。