繁体   English   中英

将Swift Project集成到Objective-C应用程序中

[英]Integrate Swift Project in An Objective-C application

我正在尝试将Swift Project集成到Objective-C应用程序中,我添加了标题“ project-Swift.h”,并且在Swift类之前也添加了@objc,我解决了兼容性问题,但我也找不到解决方案对于他们:

 func postCallsChangedNotification() {
        NSNotificationCenter.Default.post(name: type(of: self).CallsChangedNotification, object: self)
    }

错误:使用未解析的标识符“类型”

func startSpeakerboxCall(completion: ((_success: Bool) -> Void)?) {
    // Simulate the call starting successfully
    completion?(_success: true)

    /*
        Simulate the "started connecting" and "connected" states using artificial delays, since
        the example app is not backed by a real network service
     */
    DispatchQueue.main.asyncAfter(wallDeadline: DispatchWallTime.now() + 3) {
        self.hasStartedConnecting = true

        DispatchQueue.main.asyncAfter(wallDeadline: DispatchWallTime.now() + 1.5) {
            self.hasConnected = true
        }
    }
}

错误:使用未解析的标识符“ DispatchQueue” /使用未解析的标识符“ DispatchWallTime”

谁能帮忙找到为什么会出现这些错误,但是在集成之前此代码可以正常工作?

看来您正在使用“ 使用旧版Swift语言版本>是” ,因此DispatchQueue不可用,并且您正在为Swift 2.3而不是3进行编译,您有2个选项:

  • 快速使用3。
  • 将您的函数更新为2.3语法。

当然,您可以在Objective C项目中使用swift文件。

只需确保已在目标c文件中导入了正确的ProjectName.swift.h文件即可。

#import "ProjectName-Swift.h"

在目标C项目中参考快速用法

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM