将Obj-c iOS应用程序转换为Swift时的链接器错误

通道

我有一个用Objective-C编写的iOS应用,想要转换为Swift。根据Apple在Cocoa和Objective-C中使用Swift的要求,我添加了一个与要替换的Objective-C类同名的新Swift文件,放入存根类声明,并从目标中删除了原始的Objective-C类。

错误报告是在链接时找不到该类的符号:

Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_Chunk", referenced from:
      objc-class-ref in ViewController.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

这是我的存根类声明:

import Foundation

@objc class Chunk {

}

我可以检查一些链接器设置吗?

是的,我已经清理了项目,删除了派生数据文件夹,并确认Swift文件在Build Phases的Compile Sources部分中

现在,我还用Xcode 6.1.1创建的全新项目重现了该问题,该项目位于https://github.com/dpassage/Foo

托尼·麦克努(TonyMkenu)

在链接上(Apple Dev)...,您必须再次检查“将Swift导入Objective-C” :)

ViewController.m...中,删除此行:#import "Chunk.h"并添加以下行:#import "Foo-Swift.h"

“文件:<#YourProjectName#>-Swift.h即使您看不到它,也应该已经在您的项目中自动创建了它。”

更新

如果Chunk.swift是Objective-C类的后代..请将其替换@objc class Chunk为:(@objc class Chunk : NSObject或conf与您的要求)。如果不是,请从这里https://stackoverflow.com/a/24005242/1702413检查“在Objective-C中使用PURE Swift类”

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将代码从swift转换为obj c

将Obj-C转换为Swift

将Obj-C转换为Swift ep1

将Swift框架导入到Obj-C

将c#Winforms应用程序转换为Java

将 C++ 应用程序转换为 VR

将 Obj-C init 覆盖函数转换为 Swift 3

iOS Obj-C挂钩将十六进制转换为字符串

将 html 应用程序转换为 C# 应用程序

尝试将C#代码转换为VB.NET WPF应用程序的非常奇怪的错误

如何将Java语法转换为Myclass的C#obj = new Myclass(){公共重写mymethod()}

将Obj-c转换为快速长按手势

Obj-C,如何将几个应用程序委托属性传递给可可触摸框架方法?

将 c# 控制台应用程序转换为 c# windows 窗体应用程序

将目标添加到Swift / Obj-C项目时出错

从obj-c转换为swift

如何将网络扩展 NEPacketTunnelProvider 类从 Obj-C/Swift 移植到 Xamarin C#?

将C#控制台应用程序转换为ASP.NET MVC应用程序

C ++(VC2010)帮助将控制台应用程序转换为隐藏的Windows应用程序吗?

如何将接口obj转换为obj类?

需要帮助将深度链接路由集成到 Xcode 项目 Obj-C 中的内容

Android NDK将C模块与C ++应用程序链接

无法同时将Swift和Obj-C库与Cocoapods一起使用

OBJ。C.(XCODE 5-IOS 7)自动将变量保存在属性列表中

OBJ-C-将JSON数据发布到服务器?

'/'应用程序中的服务器错误无法将char值转换为money

将C#控制台应用程序转换为DLL

将 AUMID 转换为应用程序名称 C#

将Windows Phone应用程序的C#转换为VB.NET