Jam*_*mes 1 xcode objective-c ios swift carthage
我一直在和这个具体问题搏斗一段时间.基本上我已经使用Carthage添加了一个框架BigNerdRanch CoreDataStack.
但我一直有在我的Objective-C代码上使用上述框架的问题.我的项目是一个Objective-C项目,我最近在其中添加了Swift代码和Swift框架.
到目前为止,我已经能够在我的Swift代码中使用Swift框架而没有任何问题.但是一旦我开始在我的旧Obj-C上使用上述Swift框架,特别是AppDelegate.m,无论如何我都会遇到编译器错误.
根据我的理解,我必须像这样导入它:
#import <CoreDataStack/CoreDataStack-Swift.h>
Run Code Online (Sandbox Code Playgroud)
我在AppDelegate.m上做了.
我的项目也有以下设置:
项目目标设定:
构建Swift编译的设置:
我一直在StackOverflow中看到一些答案,以便向类添加公共.但我无法这样做,因为导入的Frameworks是自包含的,只包含Headers供我在XCode项目中查看.
谢谢你的帮助.
你添加了一个用swift编写的框架,如果它们不支持Objective C,你就不能在你的客观c代码中使用它.
但是,您可以在swift中创建一个类,它将用作框架和ObjC类之间的中介.
@objc class coreDataStackConvertor: NSObject {
func createStack(arg: Type) {
// Code which uses the real CoreDataStack
}
}
Run Code Online (Sandbox Code Playgroud)
从您的Objective c类,您可以使用convertor类中的方法.
| 归档时间: |
|
| 查看次数: |
4185 次 |
| 最近记录: |