Как импортировать существующие классы Objective C в Swift

Я некоторое время возился с Swift в XCode 6.0 DP, чтобы использовать его в моем существующем проекте. Я пытаюсь получить доступ к MyModel.h(Мой существующий объект Objective C Model) из моего файла ViewController.swift. Я хотел импортировать

#import "MyModel.h" в мой файл Swift. Но я не мог найти, как это можно сделать.

Ответ 1

Проводка ответа, если он помогает кому-то в решении одной и той же проблемы.

Я обнаружил, что довольно прямое решение для того, как это сделать, дано в iOS Developer Library. Пожалуйста, обратитесь к следующей ссылке:

https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html#//apple_ref/doc/uid/TP40014216-CH10-XID_75

Apple Doc говорит:

Чтобы импортировать набор файлов Objective-C в том же целевом приложении, что и ваш Swift, вы полагаетесь на заголовок моста Objective-C, чтобы файлов в Swift. Xcode предлагает создать этот файл заголовка, когда вы добавляете Быстрый файл в существующее приложение Objective-C или файл Objective-C для существующее приложение Swift.

Итак, я создал файл MyApp-Bridging-Header.h и просто добавил следующую строку:

#import "MyModel.h"

Теперь он позволяет мне использовать модель в моем ViewController.swift следующим образом:

var myModel = MyModel()
myModel.name = "My name"
myModel.dobString = "11 March,2013"
println ("my model values: Name: \myModel.name and dob: \myModel.dobString")

FYI всем, кто пытается понять это. Если вам нужно создать файл моста с нуля, вы также должны указать путь к нему в настройках сборки > Swift Compiler > Objective-C Bridging Header.

Ответ 3

Чтобы импортировать в приложение Swift или в приложение Objective C, создающее приложение на смешанном языке, вам нужно создать заголовок моста, который вы можете называть Apple Docs

В нем говорится, что

Objective-C и файлы Swift могут сосуществовать в одном проекте, независимо от того, был ли проект изначально проектом Objective-C или Swift. Вы можете просто добавить файл другого языка непосредственно в существующий проект. Этот естественный рабочий процесс делает создание целевых приложений для приложений и приложений на разных языках столь же простым, как создание приложения или рамки, написанной на одном языке.

Чтобы импортировать набор файлов Objective-C в том же целевом приложении, что и ваш код Swift, вы полагаетесь на заголовок моста Objective-C, чтобы вывести эти файлы в Swift. Xcode предлагает создать этот заголовочный файл при добавлении файла Swift в существующее приложение Objective-C или файл Objective-C в существующее приложение Swift.

EDIT: Я создал код для вашей помощи, вы можете найти его здесь