Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException
вообще.
См. также: A хороший список лучших практик
Я бы добавил, очень важно, хорошо использовать модификатор final
. Использование "окончательной" модификатор, когда это применимо в Java
Сводка:
final
для обеспечения хорошей инициализации. @NotNull
и @Nullable
if("knownObject".equals(unknownObject)
valueOf()
поверх toString (). StringUtils
StringUtils.isEmpty(null)
. Я нашел ответ после поиска вокруг. Вот то, что я сделал:
Создают новый проект в XCode. Я думаю, что использовал основанное на представлении приложение.
Перетаскивают объект веб-представления на Ваш интерфейс и изменяют размеры.
Внутренняя часть Вашего WebViewController.m (или столь же названный файл, в зависимости от названия Вашего представления), в viewDidLoad методе:
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"index" ofType:@"html"]; NSData *htmlData = [NSData dataWithContentsOfFile:filePath]; if (htmlData) { NSBundle *bundle = [NSBundle mainBundle]; NSString *path = [bundle bundlePath]; NSString *fullPath = [NSBundle pathForResource:@"index" ofType:@"html" inDirectory:path]; [webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:fullPath]]]; }
Теперь любые файлы Вы добавили, поскольку ресурсы к проекту доступны для использования в Вашем веб-приложении. У меня есть файл index.html включая JavaScript и css и файлы изображений без проблем. Единственное ограничение, которое я нашел до сих пор, - то, что я не могу создать новые папки, таким образом, все файлы загромождают папку ресурсов.
Прием: удостоверьтесь, что Вы добавили файл как ресурс в XCode, или файл не будет доступен. Я добавлял пустой файл в XCode, затем перетаскивая мой файл на вершине в средстве поиска. Это работало на меня.
Примечание: Я понимаю, что Obj-C не должен быть этим трудно для изучения. Но так как у меня уже есть это приложение, существующее в JS, и я знаю, что это работает в Safari, это - намного более быстрый dev цикл для меня. Однажды я уверен, что должен буду сломаться и изучить Obj-C.
Несколько других ресурсов я нашел полезным:
Вызов Obj-C из JavaScript: цель-c вызова от javascript
, Называя JavaScript от Obj-C: разработка приложения для iPhone для веб-хакеров
файлы Чтения от комплекта приложений: uiwebview
Проверьте PhoneGap в http://www.phonegap.com , они утверждают, что он позволяет Вам встраивать JavaScript, HTML и CSS в собственное приложение для iPhone.
Для тех, которые делают это на iPhone 2.1 (возможно, 2.0), Вы не должны создавать специальное обслуживание для локального хранения данных. MobileSafari, кажется, поддерживает API базы данных SQL HTML5/WHATWG. Это - тот же API, поддерживаемый последними версиями настольного Safari и Firefox.
при использовании инструментария как Dojo или ExtJS, который предлагает абстракцию устройства хранения данных, код должен продолжить работать примерно любой современный браузер, включая MobileSafari.
Для тестирования откройте http://robertsanders.name/dev/stackoverflow/html5.html на iPhone.
, Если Вы открываете ту страницу тогда, считают файловую систему Взломанного iPhone, необходимо видеть базу данных где-нибудь в/private/var/mobile/Library/WebKit/Databases/. Существует даже каталог открытого для сети DBS там.
версия 3.5.9 root# sqlite3/private/var/mobile/library/webkit/databases/databases.db SQLite Вводят ".help" для инструкций
sqlite> .databases seq файл
имени <час>0 основных/private/var/mobile/Library/WebKit/Databases/Databases.db
sqlite> источники .tables
Баз данных
sqlite> выбор * от Баз данных;
1|http_robertsanders.name_0|NoteTest|Database|API example|20000|0000000000000001.db
sqlite> выбирают * из Источников;
http_robertsanders.name_0|5242880
Можно создать приложение, не зная obj-C. Платформа QuickConnectiPhone позволяет Вам делать это. Выезд http://tetontech.wordpress.com для того, как использовать его, а также другие способы сделать то, что Вы спросили.
Необходимо записать собственную обертку в Objective C. Эта обертка могла содержать действительно немного строк кода (как, 10) необходимый, чтобы создать веб-представление и переместиться по нему к данному адресу в Интернете (где Ваше приложение находится). Но в этом случае Ваше приложение должно быть полнофункциональным веб-приложением (я имею в виду, использую не только JavaScript, но также и некоторый HTML для разметки).
Я столкнулся с этой той же проблемой. Мне уже записали игру полностью в JavaScript. Я хотел бы сделать iPhone дружественной версией, но Obj-C является излишеством. То, что я закончил тем, что делал, использовало веб-представление для указания на специальный URL приложения для iPhone. После размышления об этом я предполагаю, что мог просто переместить те файлы в каталог приложения и выполнить их локально.
Там не способ сделать это с текущим API яблока. Ваша самая близкая ставка должна записать простое собственное приложение для iPhone, которое встраивает браузер WebKit. Это позволит Вам просмотреть свое xhtml/js приложение локально.
, Если Вы хотите хранить данные, необходимо будет взять их шаг вперед и включать легкий вес http сервер, что серверы приложение и обеспечивают вызовы, чтобы сохранить и получить данные. Вероятно, не идеальное решение для Вас, но возможно меньше работы, чем полное приложение Obj-C.
Как примечание стороны, Obj-C довольно легко изучить. Существуют тонны примеров в SDK. Сообщество сильно и ответит на хорошо помещенные вопросы без колебания.
Titanium Mobile также является вариантом - он позволяет писать JavaScript, который переводится в Objective-C.
Я уже некоторое время использую телефонную связь, и, похоже, для меня это дает наилучшие результаты. Я опубликую свой опыт примерно через неделю со ссылкой на свое приложение.
По крайней мере двое других упомянули о телефонных разговорах, но я подумал, что опубликую это тоже и упомяну, что Apple одобрила структуру телефонных разговоров. Итак, теперь Apple не откажется от вашего приложения только потому, что вы используете телефонную связь.