#objective-c #ipad #uiwebview
#objective-c #iPad #uiwebview
Вопрос:
Я следовал приведенным здесь инструкциям: http://matt.might.net/articles/how-to-native-iphone-ipad-apps-in-javascript /
Вот простые шаги по превращению веб-приложения в собственное приложение:
- Откройте XCode.
- Создайте новый проект iPhone «Приложение на основе представления».
- Переместите файлы для вашего веб-приложения в папку ресурсов в XCode, но удалите манифест кэша. (Вы же не хотите, чтобы манифест все испортил, поскольку теперь все локально.)
- Создайте новую переменную экземпляра WebView внутри файла заголовка @interface ViewController: IBOutlet UIWebView* WebView ; // IBOutlet означает, что он виден Interface Builder.
- и создайте свойство: @property (неатомное, сохранить) UIWebView *Веб-просмотр;
Вот что у меня есть на данный момент (ViewController.h):
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
IBOutlet UIWebView* webView;
@property (nonatomic, retain) UIWebView *webView;
@end
Однако на шаге 4 я получаю две ошибки в моем заголовочном файле ViewController:
«невозможно объявить переменную внутри @interface или @protocol»
и
«атрибут iboutlet может быть применен только к переменным или свойствам экземпляра»
Итак, что я делаю не так, или это неправильное руководство по веб-сайту?
Примечание: я скачал образец проекта, который у него был для iPhone, и он сработал, но я следую руководству, чтобы сделать версию для iPad.
Я нахожусь в XCode 4, и ошибка показывает, использую ли я iOS 5 или iOS 4.3, похоже, не имеет значения.
Ответ №1:
Там не хватает пары фигурных скобок:
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController {
UIWebView *webView;
}
@property (nonatomic, retain) IBOutlet UIWebView *webView;
@end
Комментарии:
1. Вам также нужно будет добавить IBOutlet в ваше заявление о собственности.
2. Блин, я думал, что чего-то не хватает… Наверное, я слишком многого ожидал от XCode, спасибо.
3. @Bill: да, я тоже только что это заметил. Руководство, на которое ссылается OP, является типичным, неполным и вводящим в заблуждение руководством по iPhone.
4. @Ryan:
IBOutlet
обычно находится в свойстве, а не в объявлении переменной экземпляра. Я отредактировал свой ответ, чтобы показать это.5. да, только что вернулся к потоку, прежде чем он сказал подождать 7 минут 😉
Ответ №2:
Я думаю, вы забыли скобки; попробуйте изменить свой код на
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController {
IBOutlet UIWebView* webView;
}
@property (nonatomic, retain) UIWebView *webView;
@end