0

定義済みのキー セットを使用して、複数のメソッドに辞書を渡したいと考えています。以前に使用したクラスでこれが行われているのを見たことがありますが、これを設定する方法がわかりません。これは、たとえば、m ファイルで使用するものです。

NSString *name = [dictionary objectForKey:kObjectsName];
NSDate *date = [dictionary objectForKey:kObjectsDate];

辞書キーにあらかじめ決められた名前を設定するにはどうすればよいですか?

4

2 に答える 2

3

通常、Appleは、たとえばNSAttributedString Application Kit Additionsのように、ヘッダーで定義された一連の定数を残します。

標準属性

属性付き文字列は、テキストの次の標準属性をサポートします。キーが辞書にない場合は、以下で説明するデフォルト値を使用してください。

NSString * NSFontAttributeName;
NSString * NSParagraphStyleAttributeName;
[...]

属性が多すぎる場合(defineまたはグローバルconst変数を使用)は、独自の定数を使用することをお勧めします。

たとえば、.mファイル(CNは会社名)の場合:

NSString* const CNURLKey= @"URLKey";
NSString* const CNupdateTimeKey= @"updateTimeKey";
NSString* const CNtagsKey= @"tagsKey";
NSString* const CNapplicationWillTerminateKey= @"applicationWillTerminateKey";
NSString* const CNtagAddedkey= @"tagAddedkey";
NSString* const CNtagRemovedKey= @"tagRemovedKey";
NSString* const CNcolorKey= @"colorKey";

そしてヘッダーファイルで:

extern NSString* const CNURLKey;
extern NSString* const CNupdateTimeKey;
extern NSString* const CNtagsKey;
extern NSString* const CNapplicationWillTerminateKey;
extern NSString* const CNtagAddedkey;
extern NSString* const CNtagRemovedKey;
extern NSString* const CNcolorKey;

または、defineを使用することもできます。

また、すべての変数のリストを返す、NSArrayまたは含むメソッドを作成して、ユーザーにとって物事を簡単にすることもできます。NSSet

代わりに、少数の属性を保持する必要がある場合は、ディクショナリを使用するかどうかを再検討し、KVCを介してアクセスできるすべての属性を含むクラスを使用してください。

于 2013-01-07T17:27:33.203 に答える
1

#define ステートメントを .m ファイルに入れるだけです。

#define kObjectsName @"myName"
#define kObjectsDate @"myDate"

于 2013-01-07T18:06:11.003 に答える