如何在Framework目标中从Objective-C调用Swift代码?

咕cake蛋糕

将Swift文件添加到Objective-C项目时,Xcode会生成Swift-to-ObjC标头,如下所述:http ://ericasadun.com/2014/08/21/swift-calling-swift-functions-来自目标c /

如果没有此标头,则无法从Objc-C调用Swift代码。但是,Xcode不会为我的框架目标自动生成此标头。

如果我创建一个Objective-C应用程序并将一个Swift文件放入其中,那么它会自动生成一个,因此我怀疑这是因为我在构建框架而不是应用程序。没有它,就不可能使用Obj-C代码中的Swift代码。

我尝试使用为应用程序生成的文件(将其重命名并放入适当的DerivedData文件夹后),但Xcode并未对其进行更新,实际上它最终会删除它,因此手动创建或尝试维护该文件不是可行的。

如何使Xcode为框架目标生成此标头,以便可以从Obj-C代码中调用Swift代码?

记住人们:问题是关于从Obj-C调用Swift,而不是从Swift调用Obj-C。

乐队

我创建了一个新的Framework项目,添加了Obj-C和Swift文件,并能够做到这一点:

// MyObjCClass.m

#import "MyObjCClass.h"
#import <MyFramework/MyFramework-Swift.h>

@implementation MyObjCClass
- (void)test {
    [[MySwiftClass alloc] init];
}
@end

请注意,您的Swift类必须为public

public class MySwiftClass: NSObject {
    // ...
}

有关更多信息,请参见Apple的Swift / Obj-C互操作文档,位于“将Swift导入到Objective-C中”。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Swift中调用Objective C类方法

来自分类Dev

如何在Swift中调用Objective-C类别方法

来自分类Dev

如何在Swift中调用Objective-C instancetype方法?

来自分类Dev

如何在Swift中调用Objective-C类别方法

来自分类Dev

如何在Swift中调用Objective-C instancetype方法?

来自分类Dev

无法从 Objective-C++ 代码调用 swift 的函数

来自分类Dev

在Swift代码中调用C ++函数时读取文件失败

来自分类Dev

如何从Objective-C代码中调用javascript代码?

来自分类Dev

在Swift代码中调用CFunctionPointer

来自分类Dev

如何在Swift中通过#define宏使用Objective-C代码

来自分类Dev

Flutter-如何在本机Swift代码中调用通道?

来自分类Dev

如何在Swift类中从Objective C调用单例类方法?

来自分类Dev

如何在Makefile中设置目标以调用2个目标

来自分类Dev

目标C:如何在iOS中查看代码

来自分类Dev

如何在目标c中为此代码创建函数

来自分类Dev

如何从目标c调用swift方法

来自分类Dev

将代码限制为Objective-C或Swift调用者

来自分类Dev

如何从Objective C项目App委托中调用Swift?

来自分类Dev

如何从Swift调用C?

来自分类Dev

在Swift中实现Objective C代码

来自分类Dev

如何在目标C文件中访问Swift公共功能?

来自分类Dev

如何在SWIFT中设置CGPDFOperatorTableSetCallback(不是目标C)

来自分类Dev

Swift 中的 Objective C 类方法调用

来自分类Dev

如何将Swift代码转换为目标C代码

来自分类Dev

如何在目标C中创建CBUUID

来自分类Dev

如何在目标C中执行chmod()

来自分类Dev

如何在目标C中实现for循环

来自分类Dev

如何在目标C中显示时间

来自分类Dev

如何在目标C中执行chmod()

Related 相关文章

热门标签

归档