Странная ошибка для UIActionSheets при компиляции с ОС iPhone 3.0 - PullRequest
0 голосов
/ 14 июля 2009

Я недавно начал компилировать приложение для iPhone под ОС 3.0. Приложение работало нормально при компиляции под 2.2.1, однако при компиляции под 3.0 выдается следующее предупреждение:

предупреждение: введите id ' не соответствовать «UIActionSheetDelegate» Протокол

Это происходит во 2-й строке следующего фрагмента кода, который находится в моем классе делегата приложения.

+ (PooClientAppDelegate*) instance;
{
    UIApplication* app = [[UIApplication sharedApplication] delegate]; // warning occurs here
    return (PooClientAppDelegate*)app;
}

Я не уверен, откуда возникла эта ошибка, так как она не появлялась при сборке со старым SDK.

В качестве еще одной подсказки или доказательства того, что при запуске приложения ни один из листов действий не появляется, и вместо этого автоматически выбирается выбор по умолчанию для моих листов действий. Я не уверен, связано ли это, но звучит как нечто большее, чем совпадение.

Есть идеи, что здесь происходит?

1 Ответ

1 голос
/ 14 июля 2009

Вы получили явную ошибку в этой строке:

UIApplication* app = [[UIApplication sharedApplication] delegate];

Вы получаете экземпляр UIApplication, запрашиваете его делегат, а затем пытаетесь назначить делегата в указатель UIApplication.

Должно быть:

id<UIApplicationDelegate> app = [[UIApplication sharedApplication] delegate];

Я не уверен, что это точно исправит вашу ошибку, но она точно не исправит то, что у вас есть. =)

...