“没有可见的@inteface ...声明...”属性的错误

时间:2012-04-16 16:34:39

标签: objective-c

为什么会这样:

[object propertyName:propertyValue]导致Xcode 4.3和Lion中的上述异常,但object.propertyName=propertyValue可以正常工作吗? 有问题的@property是一个简单的浮点数,我也使用了@synthesize。

我对Objective C相对较新,但在C#方面有相当多的经验,并且已经阅读了关于这两个方法被列为同义词的主题的Aaron Hillegass的书,其中[...]首选的。

2 个答案:

答案 0 :(得分:3)

setter方法的名称与属性不同。将其作为方法调用时,您需要setPropertyName而不是propertyName。 getter仍然只是属性名称。

请参阅How to write my own setter for an ivar以获得一个好例子。

答案 1 :(得分:0)

当您使用@property@syntesize声明变量时,系统会为您编写get和set方法。在此,您需要使用[object setPropertyName:propertyValue]。您也可以使用object.propertyName=propertyValue,但它是C编程风格。