我是初学者obj-c程序员。我想将枚举存储在NSMutableArray中,然后检索它们。 我这样做是首先将枚举转换为NSNumber对象,然后将该对象存储到数组中,然后检索它并将其转换回整数。我有没有数组的代码,并且工作,但我需要使用数组。
代码:
//What I am trying to do:
NSNumber *n = [NSNumber numberWithInt:west];
[DirectionList addObject:n];
Direction intendedDirection = [[DirectionList objectAtIndex:0] intValue];
if (intendedDirection == west)
{
exit(-1); // DOES NOT EXIT, BUT SHOULD
}
//This code works, though
NSNumber *n = [NSNumber numberWithInt:west];
Direction intendedDirection = [n intValue];
if (intendedDirection == west)
{
exit(-1); // EXITS AS EXPECTED
}
为什么第一个不起作用的任何想法? 感谢。
答案 0 :(得分:1)
如果你不需要改变数组,我建议你使用这种方法比你想要遵循的方法更清晰。
我在这个例子中使用NSString
,但您可以使用任何您想要的对象
typedef NS_ENUM(NSUInteger, Direction) {
North,
South,
West,
East
};
NSString *const directionDescriptions[] = {
[West] = @"West",
[East] = @"East",
[North] = @"North",
[South] = @"South",
}
然后,您可以使用枚举作为此数组的索引来访问您的描述。
// E.g.
NSSLog(@"%@", directionDescriptions[West]); // @"West"