#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
в конце инициализации)