Я пытался использовать быстрый класс внутри объективного проекта c и потратил много времени, пытаясь заставить его работать, но безуспешно.
Все ответы не работали для меня, пока я не нашел правильный путь для своего Project-Swift.h.
Это была уловка, которая спасла мне жизнь.
Следуйте этим шагам, и вы добьетесь успеха!
1 - Создайте свой проект xcode
2 - Создайте новый файл .swift
3 - Появится диалоговое окно, обязательно выберите «Создать заголовок моста» при появлении запроса.
4 - On Target -> настройки сборки, найдите «Упаковка» и включите «Определяет модуль».
5 - В вашем файле Swift (образец)
import Foundation
@objcMembers
class MyClass: NSObject {
public func test () -> String {
return "Swift says hi to objc class!"
}
}
Здесь обратите внимание на @objcMembers, что позволит классу objc распознавать класс swift!
Найдите это здесь
6. В файле класса objc .m или .h импортируйте автоматически сгенерированный файл Project-Swift.h на шаге 3.
Моя цель состояла в том, чтобы импортировать его:
#import <Teste-Swift.h>
И нет:
#import "Teste-Swift.h"
Вот и все, после головной боли я получил ответ
Итак, в конце мой файл .m выглядел так:
#import "ViewController.h"
#import <Teste-Swift.h>
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//-------------
MySwiftClass *myswiftclass = [[MySwiftClass alloc] init];
NSString *string = [myswiftclass test];
NSLog(@"%@",string);
}
@end
Мой файл .swift:
import Foundation
@objcMembers
class MySwiftClass: NSObject {
public func test () -> String {
return "Swift says hi second swift class!"
}
}
Я надеюсь, что это может помочь вам, ребята.
person
Jhonsore
schedule
16.11.2018