Я определил перечисление в заголовочном файле класса:
typedef enum{
RED = 0,
BLUE,
Green
} Colors;
- (void) switchTest:(Colors)testColor;
и в файле реализации я имею:
- (void) switchTest:(Colors)testColor{
if(testColor == RED){
NSLog(@"Red selected");
}
switch(testColor){
case RED:
NSLog(@"Red selected again !");
break;
default:
NSLog(@"default selected");
break;
}
}
Мой код компилирует правильно без предупреждений. При вызове switchTest метода с КРАСНЫМ вывод: "Красный выбран"
но однажды первая строка выполнений переключателя, приложение неожиданно выходит и без warrnings/errors.
Я не возражаю использовать, если/еще синтаксис, но я хотел бы понять свою ошибку.
У меня работает:
typedef enum{
RED = 0,
BLUE,
Green
} Colors;
@interface Test : NSObject
- (void) switchTest:(Colors)testColor;
@end
@implementation Test
- (void) switchTest:(Colors)testColor {
if(testColor == RED) {
NSLog(@"Red selected");
}
switch(testColor){
case RED:
NSLog(@"Red selected again !");
break;
default:
NSLog(@"default selected");
break;
}
}
@end
int main (int argc, const char * argv[]) {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
Test *myTest = [[Test alloc] init];
[myTest switchTest:RED];
[myTest switchTest:RED];
[pool drain];
return 0;
}