【发布时间】:2011-07-08 13:10:12
【问题描述】:
我正在尝试实现一个简单的方法,但是我仍然是 Objective-c 的新手。
我有一个简单的方法,它试图将 id 转换为枚举中的特定值(如果匹配)。
这是枚举
typedef enum {
DXTypeUnknown = 0,
DXDatasource = 1,
DXGroup = 2
} DXPropertyType;
这是相关的方法:
-(DXPropertyType)typeFromObject:(id)_type {
int _t = [_type intValue];
switch (_t) {
case DXDatasource:
return [NSNumber numberWithInt:DXDatasource];
case DXGroup:
return [NSNumber numberWithInt:DXGroup];
default:
return [NSNumber numberWithInt:DXTypeUnknown];
}
}
我要实现的第一个检查是是否可以将 id 转换为 int,然后查看它是否属于两个相关类别组或数据源,否则返回默认值。你能告诉我我实施的开关/案例是否是一个合适的解决方案吗? 我也希望这种方法不会导致应用程序崩溃,所以建议检查什么,记住在任何情况下都将返回默认值。
谢谢
[编辑] 我忘了说这个值将存储在 NSManagedObject 的字段中,根据 CoreData 的限制,它可以是 NSNumber,所以可能有更好的解决方案而不是枚举。
【问题讨论】:
-
id是什么?它是任何随机对象还是特定类的实例? -
目前是一个从 plist 中取出的对象,并存储在字典中,并用 [dict objectForKey] 调用,但我想扩展这个案例并考虑任何随机对象。跨度>
标签: objective-c enums