簡體   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