UIAlert view не работает

#iphone #objective-c #cocoa-touch #ios5

#iPhone #objective-c #cocoa-touch #ios5

Вопрос:

Я новичок в objective C, и я нахожусь в положении, когда мне нужно очень быстро создать приложение для iPhone, я использую XCode 4.2

Я хочу, чтобы появилось всплывающее окно, и я использую этот код :

в .h У меня есть

 #import <AddressBook/AddressBook.h>
#import <AddressBookUI/AddressBookUI.h>
  

и в файле .m

 UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:@"Confirmation" 
                                                     message:@"confirmed" 
                                                    delegate:self 
                                           cancelButtonTitle:@"OK" 
                                           otherButtonTitles:nil,nil];
                          [alert show];
  

код показывает мне ошибку сборки «Ожидаемый идентификатор», я что-то забыл?

Спасибо

Комментарии:

1. Чтобы проверить соответствие скобок, скобочных обозначений, фигурных скобок, просто дважды щелкните по одной из них, и если есть совпадение, выделенный элемент будет выделен. Хороший быстрый тест.

2. дополнительная скобка. удалите один из них, прежде чем выделять его.

Ответ №1:

У вас есть дополнительная открытая скобка ‘[‘

вам нужно что-то вроде этого:

 UIAlertView *alert = [[[UIAlertView alloc] initWithTitle:@"Confirmation" 
                                                     message:@"confirmed" 
                                                    delegate:self 
                                           cancelButtonTitle:@"OK" 
                                           otherButtonTitles:nil] autorelease];
                          [alert show];
  

Обратите внимание на авторелиз] добавленный мной код, таким образом, вы настроите автоматический выпуск UIAlertView и исправите дополнительную открытую скобку.

Комментарии:

1. Xcode 4.2 — итак, я предполагаю, что операционная система использует ARC, и, следовательно, вызов autorelease не нужен.

2. Хороший момент, тогда авторелиз не нужен, просто уберите лишнюю открытую скобку =)

3. Также обратите внимание, что он использовал nil дважды в otherButtonTitles: аргументе… Я сомневаюсь, что это может причинить вред, но, безусловно, это не очень хорошая практика

Ответ №2:

У вас две ошибки :

->[<- [[UIAlertView alloc] инициализация с заголовком:@сообщение «Подтверждение»:@»подтверждено» делегирование: самоотменяющийся заголовок кнопки:@»OK» Другие заголовки кнопок: ноль ->,nil<-] ;

удалите их и просто напишите :

 [[UIAlertView alloc] initWithTitle:@"Confirmation" 
                           message:@"confirmed" 
                          delegate:self 
                 cancelButtonTitle:@"OK" 
                 otherButtonTitles:nil];
  

Если вы не используете ARC, не забудьте отпустить [alert release] после [alert show] (или autorelease в конце инициализации)