我有一个NSMutableArray
,它返回一些对象。 我添加的对象有属性名称,年龄。为什么调用NSObject指针的属性会产生构建错误?
现在,当我使用返回的对象(obj.name
或obj.age
)这些特性, 编译器说,没有这样的成员,使用(->
),而不是(.
)
据我所知,NSObject的不会有这些成员和因此它不会理解这个属性。
但是,如果我使用setters和getters作为方法([obj name]
或[obj age]
)语法而不是此属性,我没有得到任何错误。
但使用属性意味着只调用setter或getter?
广告Objective C假设是动态语言,对吧?
这很好。但点语法假设代表对setter或getter方法的调用。所以它不应该以一种方法调用它的方式来调用它是否存在? 反正..谢谢澄清:) – 2012-03-09 05:50:46
如果该财产应该只是只读?除非编译器确切地知道你正在谈论哪个类/属性,否则它不知道你是否应该被允许使用它(至少在你想设置值的情况下)。 – UIAdam 2012-03-09 05:55:14
@UIAdam:不错的一点,但如果属性是只读的,那么setter不会被生成,并且我应该在运行时得到一个“无法识别的选择器发送到对象异常”。 – 2012-03-09 06:00:55