5

iOSのプログラミング中に、次のシナリオが発生しました。

クラスメソッドを持つシングルトンクラスがあり+ (Store*)sharedStoreます。シングルトンオブジェクトでインスタンスメソッドを呼び出したい場合は、ドット構文を使用してそのオブジェクトを取得できます[Store.sharedStore foo]

ただし、ドットを入力した後、Xcodeは「sharedStore」をオートコンプリートしません。一方、オートコンプリートです[[Store sharedStore] foo]

「クラスプロパティ」のようなものはありますか?クラスで読み取り専用プロパティに変換できればsharedStore、ドット構文はオートコンプリートを取得します。

より一般的に言えば、Xcodeは、これが(getter)メソッドを呼び出す有効な方法であるとしても、プロパティではないもののドット構文の後にオートコンプリートしないだけです。

任意の解決策、回避策、または情報をいただければ幸いです。

4

2 に答える 2

3

現在、クラスの getter に関する限り、次のいずれかを行う必要があるようです。

  • オートコンプリートがない場合は、次の構文を使用してくださいStore.sharedStore。また
  • 代わりにブラケット構文を使用してください: [Store sharedStore].

最近、他のエディター (AppCode など) は試していません。別のエディター、クラス ゲッターのドット構文を自動修正する場合があります。

何が正しいか、論理的か、または読みやすいかについては、さまざまな意見があります。

于 2013-01-22T12:12:23.197 に答える
0

ドット構文は、プロパティにアクセスするためのものです。値を返し、引数を取得しないインスタンス メソッドで使用する人もいますが、これは悪い方法です。他のすべてのシナリオは間違っています。

于 2013-01-07T10:22:58.170 に答える