考慮すべきもう 1 つの考慮事項: プロパティの値を保存しますか? (たとえば、NSCodingまたはCore Dataを介して)「保存」する必要があるもののプロパティを作成する必要があると思います(たとえば、「encodeWithCoder」で。encodeWithCoderに何を入れたいかを決めると、どちらの方法を使用するかを決めるのに役立ちますものを定義します)。
保存する必要がなく、簡単に再計算できるものについては、メソッドと読み取り専用プロパティのどちらかを選択できます (内部的には同等です。読み取り専用プロパティは getter アクセサー メソッドを作成するだけで、インスタンス変数はありません)。それをバックアップします)。つまり、それはスタイルの問題です。
スタイルについて言えば、(私のように) プロパティのみにドット表記を使用する場合、疑問に思うかもしれません:と foo.lastName ? - または、[foo fullName] でフルネームにアクセスして、これが計算されていることを世界に示すことで違いを生み出したいですか?
株価を追跡するためのアプリを作成しました。このモデルは、Objective C に関する Big Nerd Ranch の本の例から着想を得ました (ちなみに、よく読んでください)。プロパティとメソッドの定義方法は次のとおりです。
// properties
@property (nonatomic, copy) NSString *name;
@property (nonatomic, copy) NSString *symbol;
@property (nonatomic, copy) NSString *currency;
@property (nonatomic, copy) NSString *market;
@property (nonatomic) int numberOfShares;
@property (nonatomic) double purchaseSharePrice;
@property (nonatomic) double currentSharePrice;
// Stock Calculation methods
- (double)costInLocalCurrency; // purchaseSharePrice * numberOfShares
- (double)valueInLocalCurrency; // currentSharePrice * numberOfShares
- (double)gainOrLossInLocalCurrency // valueInLocalCurrency - costInLocalCurrency
明確に区別されていることがわかります。BNR は本でドット表記をまったく使用しないため、[foo currentSharePrice] または [foo valueInLocalCurrency] のようにすべて同じように見えますが、プロパティにドット表記を使用しているため、foo 間でスタイルに違いが生じます。 currentSharePrice と [foo valueInLocalCurrency]。
これが役に立てば幸いです。