繁体   English   中英

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

[英]What is the difference between using a method and a property?

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

@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]; 而不是element.stateImageForAtomicElementTileView

我认为没有技术上的理由选择一个成语而不是另一个,它们可以以相同的方式使用。 这更多是语义问题。

一个类既有数据,又可以执行操作(通常对所述数据)。 我认为您应该考虑使用属性,并拥有. 访问而不是[ ]作为记录stateImageForAtomicElementTileView目的的一种方式。

这是类的一部分的图像(事实不是从资源中即时生成的,应将其视为实现细节)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM