NSDictionary 引数を取るメソッドがあります。この NSDictionary には、事前定義されたキーがいくつかあります。すべての obj は文字列でなければなりません。ただし、特定の文字列 obj のみが各キーに対して有効です。したがって、私のアプローチは、キーごとに有効な文字列ごとに NSString を typedef することでした。NSString クラスを拡張しないことを望んでいます。
いくつかの NSString を typedef しました...
typedef NSString MyStringType
次に、いくつか定義します...
MyStringType * const ValidString = @"aValidString";
これが私のサンプルメソッドでやりたいことです..
- (void)setAttrbiutes:(NSDictionary *)attributes {
NSArray *keys = [attributes allKeys];
for (NSString *key in keys) {
if ([key isEqualToString:@"ValidKey"]) {
id obj = [attributes objectForKey:key];
//Here's where I'd like to check..
if (**obj is MyStringType**) {
}
}
}
}
NSDictionary の obj 型の問題を解決するためのより良いアプローチがあれば、他のアイデアを受け入れます。