1. ホーム
  2. オブジェクティブC

[解決済み】Objective-Cでクラスレベルのプロパティを宣言するにはどうすればいいですか?

2022-04-06 13:35:46

質問

当たり前のことかもしれませんが、Objective-Cでクラスのプロパティを宣言する方法がわかりません。

クラスごとに辞書をキャッシュする必要があるのですが、どのようにクラス内に置くのでしょうか。

どのように解決するのですか?

プロパティはObjective-Cでは特定の意味を持ちますが、静的変数に相当するものを指しているのではないでしょうか?例えば、すべてのタイプのFooに対して1つのインスタンスだけとか?

Objective-Cでクラス関数を宣言するには、-ではなく、+というプレフィックスを使いますので、実装は次のようになります。

// Foo.h
@interface Foo {
}

+ (NSDictionary *)dictionary;

// Foo.m
+ (NSDictionary *)dictionary {
  static NSDictionary *fooDict = nil;
  if (fooDict == nil) {
    // create dict
  }
  return fooDict;
}