这些方法位于名为Rectangle的类中,这是实现文件Rectangle.m
的一部分#import "XYPoint.h"
- (void)setOrigin:(XYPoint *)pt {
origin = pt;
}
- (XYPoint *)origin {
return origin;
}
答案 0 :(得分:3)
关于Objective-C没什么特别之处。它只是名为origin
的属性的setter和getter。
使用
设置新原点时self.origin = /*some new value*/;
或
[self setOrigin: /*some new value*/];
将调用第一种方法。
以同样的方式调用另一个方法,当您使用self.origin
或[self origin]
获取值时(但对于第二种方法)
您通常将这些方法称为“setter and getters”或简称为“accessors”。在其他语言中,例如Java,通常将这些方法命名为setXyz
和getXyz
,但Objective-C为getter命名为setXyz
和xyz
。
这些天你很少自己编写这些方法。通过使用property
并让编译器为您生成此样板代码,您可以获得相同的好处。示例中的属性看起来像这样并替换所有代码:
@property (weak) XYPoint *origin; // weak since your methods are not retaining the new value
您可以阅读有关使用属性与实例变量in this answer的原因。简而言之:使用方法包装变量使您可以对对象进行内存管理(如复制或保留),并且可以调用启用KVC / KVO的其他方法,但它有一点点开销。