我有一个采用 NSDictionary arg 的方法。这个 NSDictionary 有一些预定义的键。所有的 obj 都应该是字符串。但只有某些字符串 obj 对每个键有效。所以我的方法是为每个键的每个有效字符串 typedef NSString。我希望不要扩展 NSString 类。
我已经 typedef 了一些 NSString 的...
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 类型问题,我愿意接受其他想法。