0

私が行っていることについて、意見をお聞きしたいと思います。私はそれが機能することを知っていますが、私がしていることをするのが適切かどうかはわかりません.

名前と説明の 2 つの NSString を公開する必要があるスーパークラス Building があります。サブクラスを離れてこれらの変数を変更することはできません。

この結果を得るために、基本クラスに 2 つのパブリック メソッドを作成しました。

@interface Building : NSObject 

- (NSString *)name;
- (NSString *)description;
@end

次に、各サブクラスで、名前と説明のプロパティを持つプライベート インターフェイスを作成し、魔法を起こさせます。

@interface Barrack()
@property (nonatomic, strong) NSString *name;
@property (nonatomic, strong) NSString *description;
@end

@implementation Barrack
@synthesize name, description;
...
@end

これについてどう思いますか?これはこの種の結果を得る適切な方法ですか?このトピックについてもっと良いアイデアを持っている人はいますか? ご意見ありがとうございます。

一番、

エンリコ

4

1 に答える 1

3

インターフェイスで readonly プロパティを宣言し、実装クラス拡張で readwrite を宣言します。の必要はありません@synthesize。これが、Objective-C にクラス拡張が追加された主な理由の 1 つです。

Building.h 内

@interface Building : NSObject 
@property (nonatomic, strong, readonly) NSString *name;
@property (nonatomic, strong, readonly) NSString *description;
@end

Barrack.m で

@interface Barrack ()
@property (nonatomic, strong, readwrite) NSString *name;
@property (nonatomic, strong, readwrite) NSString *description;
@end

@implementation Barrack
...
@end
于 2013-11-13T13:52:16.377 に答える