我正在研究“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
一样访问它?
答案 0 :(得分:0)
我认为选择一种成语而不是另一种习惯是技术上的原因,它们都可以以相同的方式使用。这更像是语义问题。
类具有数据并且可以执行操作(通常在所述数据上)。我认为您应该考虑使用属性,并使用.
访问权限而不是[ ]
作为记录stateImageForAtomicElementTileView
目的的方式。
这是一个图像,它是该类的一部分(事实上不是从资源中动态生成的事实应被视为实现细节)