使用方法和属性有什么区别?

时间:2010-11-09 10:08:29

标签: ios properties readonly

我正在研究“The Elements”示例应用程序的源代码,我看到在AtomicElement.h中有四个属性声明为readonly:

@property (readonly) UIImage *stateImageForAtomicElementTileView;
@property (readonly) UIImage *flipperImageForAtomicElementNavigationItem;
@property (readonly) UIImage *stateImageForAtomicElementView;
@property (readonly) CGPoint positionForElement;

在实现文件中,它们看起来像

- (UIImage *)stateImageForAtomicElementTileView {
    return [UIImage imageNamed:[NSString stringWithFormat:@"%@_37.png",state]];
}

请您详细说明理由吗?为什么不使用像

这样的东西
- (UIImage*) stateImageForAtomicElementTileView;

在头文件中,然后像[element stateImageForAtomicElementTileView];而不是element.stateImageForAtomicElementTileView一样访问它?

1 个答案:

答案 0 :(得分:0)

我认为选择一种成语而不是另一种习惯是技术上的原因,它们都可以以相同的方式使用。这更像是语义问题。

类具有数据并且可以执行操作(通常在所述数据上)。我认为您应该考虑使用属性,并使用.访问权限而不是[ ]作为记录stateImageForAtomicElementTileView目的的方式。

这是一个图像,它是该类的一部分(事实上不是从资源中动态生成的事实应被视为实现细节)