Objective c Xcode枚举灾难
我以为我已经把它整理好了,但我还是遗漏了一些东西 非常简单,我有一个设置类,它在plist上保存一个DAO。为了方便和可读性,我想为设置设置一些枚举,比如GamePlayType和HardicultyLevel。现在,我正在@interface行上方的Settings.h文件中定义它们:Objective c Xcode枚举灾难,objective-c,xcode,enums,Objective C,Xcode,Enums,我以为我已经把它整理好了,但我还是遗漏了一些东西 非常简单,我有一个设置类,它在plist上保存一个DAO。为了方便和可读性,我想为设置设置一些枚举,比如GamePlayType和HardicultyLevel。现在,我正在@interface行上方的Settings.h文件中定义它们: typedef enum { EASY, NORMAL, HARD } DifficultyLevel; 及 如果我从设置类中访问它们,如: - (int)gridSizeForLOD { switc
typedef enum {
EASY,
NORMAL,
HARD
} DifficultyLevel;
及
如果我从设置类中访问它们,如:
- (int)gridSizeForLOD {
switch ([self difficultyLevel]) {
case EASY:
return GRID_SIZE_EASY;
case NORMAL:
return GRID_SIZE_NORMAL;
case HARD:
return GRID_SIZE_HARD;
default:
return GRID_SIZE_NORMAL;
}
}
一切都很好
但是,如果我尝试在设置类之外访问它们,比如在我的主视图控制器类中,如下所示:
if (([settings gameType] == SET_NUMBER_OF_MOVES) && (numMoves == [settings numMovesForLOD])) {
[self showLoseScreen];
}
- (int)gameType {
return (settingsContent != nil) ? [[settingsContent objectForKey:@"Game Type"] intValue] : 0;
}
我会遇到一些错误,比如EXC\u坏访问或者条件总是失败。我做错什么了吗
另外,我应该指出,我有以下代码用于调用位于设置类中的gameType:
- (GamePlayType)gameType {
return [dao gameType];
}
DAO实现的游戏类型如下:
if (([settings gameType] == SET_NUMBER_OF_MOVES) && (numMoves == [settings numMovesForLOD])) {
[self showLoseScreen];
}
- (int)gameType {
return (settingsContent != nil) ? [[settingsContent objectForKey:@"Game Type"] intValue] : 0;
}
我知道我让DAO返回一个int而不是GamePlayType,但是当我尝试使用正确的数据类型时,出现了一个我正在描述的问题,B我认为这并不重要,因为枚举只是一组命名的int,对吗
任何帮助,非常感谢。我真的很想彻底了解这一点,有些事情让我不知所措
干杯
Chris如果你还没有它,你需要在你的另一堂课上导入如下内容
#import "Settings.h"
EXC_BAD_访问异常后从调试器获得的回溯应该会为您提供有关该问题的大量信息。这里显示的代码没有任何明显的问题。EXC_BAD_ACCESS闻起来像是一个在各个方面都与枚举无关的问题。我会去别处看看。设置断点,正如Carl Norum所说,查看回溯。