1

我一直在努力解决这个特定的问题。基本上我已经使用Carthage添加了一个框架BigNerdRanch CoreDataStack

但是我在我的 Objective-C 代码中使用上述框架时遇到了问题。我的项目是一个 Objective-C 项目,我最近在其中添加了 Swift 代码和 Swift 框架。

到目前为止,我已经能够在我的 Swift 代码中毫无问题地使用 Swift 框架。但是一旦我开始在我的旧 Obj-C 上使用上述 Swift 框架,特别是 AppDelegate.m,无论如何我都会遇到编译器错误。

据我了解,我必须像这样导入它:

#import <CoreDataStack/CoreDataStack-Swift.h>

我在 AppDelegate.m 上做过的。

我的项目也有以下设置:

项目目标设置:

在此处输入图像描述

Swift 编译的构建设置:

在此处输入图像描述

我在 StackOverflow 中看到了一些将公共添加到类的答案。但我无法这样做,因为导入的框架是自包含的,并且只包含我在 XCode 项目中查看的标题。

在此处输入图像描述

谢谢你们的帮助。

4

1 回答 1

6

您添加了一个用 swift 编写的框架,如果它们不启用对 的支持Objective C,您就不能在您的目标 c 代码中使用它。

但是,您可以在 swift 中创建一个类,它将用作框架和您的 ObjC 类之间的中介。

@objc class coreDataStackConvertor: NSObject {

    func createStack(arg: Type) {

        // Code which uses the real CoreDataStack
    }

}

从您的目标 c 类中,您可以使用转换器类中的方法。

于 2016-06-20T07:35:17.793 回答