为什么会这样:
[object propertyName:propertyValue]
导致Xcode 4.3和Lion中的上述异常,但object.propertyName=propertyValue
可以正常工作吗?
有问题的@property是一个简单的浮点数,我也使用了@synthesize。
我对Objective C相对较新,但在C#方面有相当多的经验,并且已经阅读了关于这两个方法被列为同义词的主题的Aaron Hillegass的书,其中[...]首选的。
答案 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编程风格。