2

アプリでNSNotificationsを使用して、コードを分離します。

通知の名前として文字列を使用するときにコンパイラが助けてくれるようにしたいのです。つまり、文字列を間違って入力した場合は、コンパイラに教えてもらいたいのです。

これに通常の文字列を使用しても機能しません。コンパイラは、入力"myNotificaion"した場合にそれが本当に意味することを認識しないため"myNotification"です。

これを行う1つの方法は、#definesまたはconst NSString変数を使用することですが、これは、元のクラスまたはグローバルに含まれるファイルのいずれかで、ファイルで宣言する必要があることを意味します。

それらが元のクラスで宣言されることの問題は、通知がリッスンされるすべての場所に含まれる必要があるため、私が望まない結合を作成することです。

グローバルファイルの問題は、ファイルが長くて乱雑になる可能性があり、無関係なものがたくさん含まれる可能性があることです。

この結合や乱雑さなしにこれを達成する方法はありますか?

4

1 に答える 1

1

いいえ、私が知る限りではありませんが、#defines および NSString 定数はその場所にあり、文字列へのアクセスが必要なファイルにこれらを含める必要を回避することはできません。

アプリのさまざまな部分のヘッダー ファイルを作成できます。たとえば、JJDocumentNotifications.h. JJViewNotifications.h次に、それらをプリコンパイル済みヘッダー (.pch) ファイルに #import することができるため、ファイルは次のようになります。

#import <Cocoa/Cocoa.h>
#import "JJDocumentNotifications.h"
#import "JJViewNotifications.h"

そうすれば、ヘッダーはターゲット内のすべてのファイルに自動的に含まれ、特にインポートする必要はありません。

于 2009-11-17T01:46:08.430 に答える