2014-12-06 2 views
1

Сегодня я узнал, что заявление @import действительно может помочь связать рамки автоматически.Автоматическое связывание каркасов не работает

ОК, я создал проект, добавлен WebView. Это порождало ошибку, что WebView не определено. Хорошо, я написал @import WebKit - и ошибка исчезла, и все методы WebView были доступны мне.

... Я побежал приложения и он разбился с

*** Terminating app due to uncaught exception 'NSInvalidUnarchiveOperationException', reason: '*** -[NSKeyedUnarchiver decodeObjectForKey:]: cannot decode object of class (WebView)'

Затем я добавил WebKit.framework вручную и ... он работал. Так в чем смысл этого заявления @import? Автоматическое связывание включено ...

enter image description here

ответ

0

import импорт заголовки. Таким образом, определяется имя WebView, а также методы и другие материалы в WebKit, и ваш код может компилировать. Ссылки на ссылки код - код, в котором WebView фактически живет и дышит и имеет свое бытие, - и поэтому ваш код может запустить.

Обычно, если вы импортируете фреймворк с помощью @import, все происходит. Вы можете скомпилировать свой код из-за импорта, и вы можете запустить код в рамках, потому что импорт также выполняет автоматическую привязку.

Но вы создаете WebView из ниба. Поэтому вам также нужно явно указывать ссылку, иначе вы столкнетесь, когда загрузится пин. То же самое верно, если вы должны использовать MapView в банке - вам нужно будет напрямую связать MapKit или вы сработаете, когда загрузится nib.

Смежные вопросы