Разделение классов между iphone и яблочными часами
Я надеялся, что кто-то может пролить свет на это. Я пробовал исследовать, но ничего не мог найти...
Есть ли способ поделиться классом между приложением iPhone и расширением чата Apple?
Скажем, в расширении часов у меня есть класс myClass
; Я не могу использовать этот класс в приложении телефона. Есть ли способ обойти это?
Ответы
Ответ 1
Приложение iPhone и расширение часовых поясов Apple - это разные цели в вашем проекте. Для каждого файла (кроме файла .h) вы можете указать, к какой цели вы хотите включить.
Есть как минимум два способа сделать это.
1) В верхнем меню выберите Вид → Утилиты → Инспектор файлов. Появится правая панель и вы найдете раздел Целевое членство с флажками рядом с доступными целями для проекта. Проверьте цели, к которым вы хотите включить этот файл. В этом случае приложение iPhone и расширение WatchKit.
2) Вы также можете щелкнуть по проекту, чтобы перейти к настройкам проекта. Выберите желаемый объект. (например, приложение iPhone или расширение WatchKit), перейдите на вкладку Сборка факс. В источниках компиляции вы можете щелкнуть значок " +", чтобы добавить больше файлов для сборки для цели. (т.е. myClass.m в вашем случае)
Надеюсь, это поможет!
Ответ 2
Еще одно возможное решение (и то, что в конечном итоге решило мою проблему) - убедиться, что ваш Watch Target также знает, где живет ваш файл моста!
-
Откройте настройки проекта и выберите расширение WatchKit.
-
В настройках сборки найдите ключевое слово "мостик"
-
Убедитесь, что установлен файл заголовка Objective-C Bridging Header
![введите описание изображения здесь]()
Ответ 3
Есть два способа сделать это.
-
Создайте инфраструктуру с вашим общим кодом и привяжите эту структуру к расширению WatchKit и вашему iPhone-приложению. Это самый чистый и рекомендуемый способ.
-
Добавьте исходный файл (и зависимостей) для MyClass к вашим целевым объектам iPhone и WatchKit.
Ответ 4
Если вы хотите поделиться классами Obj-C из приложения iPhone в коде Swift в расширении приложения просмотра:
-
Включите все файлы .m, которые вы хотите использовать в приложении iPhone, в
приложение Target для WatchKit Extension (т.е. в целевом членстве).
-
Создайте файл заголовка моста (новый файл .h) (обычно называемый [Projectname] -Bridging-header.h). Вы можете по желанию назвать его как [projectName] -Watch-Bridging-Header.h(или что-нибудь еще, что подходит).
- Включить все файлы .h, соответствующие .m, включенному в WatchKit
Задача расширения в качестве импорта в файле заголовка моста (например,
#import "MyLogger.h" ).
- Вы готовы использовать классы Obj-C в коде приложения WatchKit Extension
Теперь.