Я конвертирую приложение iOS в 64-разрядное. У меня установлен последний Xcode 5.1 (бета-версия 4).предупреждение о typedef enum при преобразовании приложения в 64-разрядный
Когда я скомпилировал приложение, я получил более 100 предупреждений, и большинство из них довольно легко исправить. Тем не менее, у меня есть предупреждение на следующий код:
+ (CommentResponseStatus)commentReponseStatusCodeWithStatusString:(NSString *)_status
{
NSArray *commentStatusString = [NSArray arrayWithObjects:@"success", @"needConfirmation", @"stopped", nil];
return [commentStatusString indexOfObject:_status];
}
Где CommentResponseStatus
объявлен как:
typedef enum {
success,
needConfirmation,
stopped
} CommentResponseStatus;
У меня есть предупреждение «Неявное преобразование теряет целочисленную точность:„NSUInteger
“(он же„unsigned long
“) на «CommentResponseStatus
»
предупреждение на линии return [commentStatusString indexOfObject:_status];
в NSArray
у нас есть - (NSUInteger)indexOfObject:(id)anObject;
Я смущен этим предупреждением и пока не знаю, как это исправить. Любая быстрая помощь была бы оценена.
Это сработало! Благодаря! –
Я попробовал 2-е решение, и предупреждение исчезло. Однако я не уверен в первом. Я сделал еще несколько поисков и нашел похожие ответы здесь: http://stackoverflow.com/questions/707512/what-is-a-typedef-enum-in-objective-c –
Я лично рекомендую первый, потому что он имеет только один место для реорганизации смены имени. У последнего есть два, и мне также не нравится стиль именования суффикса по сравнению с префиксом последнего. – Erik