2016-06-20 7 views
0

Я уже некоторое время борюсь с этой конкретной проблемой. В основном я добавил фреймворк BigNerdRanch CoreDataStack, используя Carthage.Импорт Swift Framework в Objective-C Project - Ошибка - Неизвестный тип Имя

Но у меня были проблемы с использованием указанной структуры на моих кодах Objective-C. Мой проект - проект Objective-C, в котором я недавно добавил коды Swift и структуры Swift.

До сих пор я без проблем мог использовать фреймворки Swift в своих кодах Swift. Но как только я начал использовать указанные структуры Swift на моем старом Obj-C, в частности AppDelegate.m, я все время получаю ошибку компилятора независимо от того, что.

Из того, что я понимаю, что я должен импортировать это следующим образом:

#import <CoreDataStack/CoreDataStack-Swift.h> 

В который я сделал на AppDelegate.m.

У меня также есть следующие настройки на моем проекте:

Цель проекта установки:

enter image description here

Построить Настройки для Swift Сборнике:

enter image description here

Я видел несколько ответов в StackOverflow, чтобы добавить к ним классы. Но я не могу этого сделать, поскольку импортированные Framework являются автономными и содержат только заголовки для просмотра в проекте XCode.

enter image description here

Спасибо за помощь, ребята.

+0

Вы пробовали это: http://stackoverflow.com/questions/37292578/import-swift-class-into-objective-c/37292716#37292716 –

+0

, пожалуйста, используйте этот #import not ваше имя фреймворка – iMHitesh

+0

Пробовал или «ProjectModule-Swift.h», оба не работают для меня. Есть ли специальный импорт, который мне нужно добавить в файл * -Swift.h? Для ваших предложений работать? – James

ответ

4

Вы добавили фреймворк, написанный в swift, если они не поддерживают поддержку Objective C, вы не можете использовать его в своем объектном c-коде.

Однако вы можете создать класс в swift, который будет использоваться в качестве посредника между каркасом и вашими классами ObjC.

@objc class coreDataStackConvertor: NSObject { 

    func createStack(arg: Type) { 

     // Code which uses the real CoreDataStack 
    } 

} 

От вас к классам c вы можете использовать методы в классе преобразователя.

+0

Как я узнаю, будет ли рамка только для Swift или нет? – James

+0

По их документации в git и исходном коде я не вижу поддержки для объектного c, все их исходные файлы находятся в быстром, и один из их минимальных требований - быстрый 2.2 ... – oren

+0

Мне так стыдно. Я был под впечатлением, что любой код Swift может работать на Obj-C и пренебрегать тем фактом, что вам нужно добавить строку «@ objc-ish». Большое вам спасибо @oren, что у вас отличный сервис. Теперь я бы поднял ваш ответ, если бы у меня хватило репутации. Как только я это сделаю, я обязательно вернусь к этому. [Bookmarked].Еще раз спасибо. – James

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