2014-09-16 4 views
12

Как импортировать класс Swift из фреймворка?iOS import swift class от swift using framework

  1. У меня есть Xcode Workspace
  2. создать Cocoa Touch рамки с помощью Swift
  3. создать Swift класс с именем TestClass в том, что какао сенсорный рамках
  4. я создать приложение Вкладки Base IOS
  5. Я импортирую свою фреймворк в приложение с вкладками iOS с использованием import FrameWorkTest

Приложение pr oject компилятор не может найти TestClass. Как я могу импортировать TestClass для использования в основном приложении?

В нем говорится, что TestClass не определен. Я также хочу добавить расширение в FrameWork, а затем использовать его.

https://github.com/ArtemKyslicyn/-SwiftImportFrameworkTest

Я использую этот учебник http://www.swift-studies.com/blog/2014/6/30/creating-a-pure-swift-framework-for-both-ios-and-mac

Я на Xcode версии 6.0 семян

Благодарности

ответ

3

Вот одно решение я нашел:

  1. Создать новый проект IOS
  2. Нажмите на проекте
  3. Нажмите +, чтобы добавить цель на
  4. В появившемся окне выберите cocoa touch framework
  5. Нажмите на project и add dependency и add framework
  6. Успех!

screenshot illustrating the success

Я использовал решение здесь: https://github.com/ArtemKyslicyn/-SwiftImportFrameworkTest в проекте под названием AddingFrameWork

0

@Artem Kislitsvn: Я вижу ваше хранилище GitHub,

В котором у вас есть файл TestClass.Swift за пределами целевых объектов st 'и' FrameWorkTest '. Это выходит за рамки пространств имен.

В Swift пространства имен указаны для каждой цели. В вашем случае «тест» и «FrameWorkTest» - две цели. Если вы держите свой файл вне цели, тогда ваш файл класса (.swift не будет отображаться в любое время).

Решение очень простое. Вы просто перемещаете свой файл TestClass.Swift внутри любой из целевых групп (перетаскивайте через Project explorer).

После этого ваш проект работает ...!

+0

Мой тестовый класс уже в мишень FrameWorkTest и общей папки связан только этого файла я удалить этот файл в образце GitHub а затем вы можете видеть, что у меня есть свой тестовый класс в пространстве имен FrameWorkTest, но в проекте iOS я не могу использовать TestClass. Большое спасибо за ваш ответ. –

+0

Название проекта и имя цели по умолчанию одинаковы. Цель находится внутри имени проекта. В вашем примере FrameWorkTest -> FrameWorkTest, проверьте (после символа -> два имени обозначают цели. Имя перед символом -> - имя проекта). Я говорю, что вы просто перемещаете файл TestClass.Swift в объекты, находящиеся внутри проекта. Это работает для меня. – Suresh

35

Сделать класс в рамочном общественности. Также любые переменные должны быть общедоступными, если вы хотите, чтобы они использовались вне рамки.

public class MyClass... { 
... 
} 
+1

Очень просто забыть этот простой шаг! Хотелось бы, чтобы в XCode возникла определенная ошибка, что вы пытались получить доступ к классу или методу или переменной, которая была приватной ... –

+0

Это помогло, спасибо! – eagerMoose

0

Чтобы импортировать Swift класса из рамок:

Перейти к вашему проекту -> Build фазы -> Выбрать цель теста -> Link Binary С Библиотекой -> + кнопка -> Добавить другими (на диалог) -> Выберите свой фреймворк и поздравления!

Я оставляю объяснение в изображениях ниже:

enter image description here

enter image description here