从目标c调用swift函数会产生链接器错误

时间:2017-04-14 15:21:36

标签: ios swift swift3

我试图从目标c文件调用swift函数。

Swift函数实现:

@objc class FXFormVariables : NSObject {
    class func FXFontName() -> String { return fontName }
    class func FXFontSize() -> CGFloat { return fontSizeLarge }
    class func FXHiddenCell() -> NSArray { return hiddenElementFromFormIndex as NSArray }
}

目标C:

NSArray *hideArray = [FXFormVariables FXHiddenCell];
if ([hideArray containsObject:@(cellIndexPath)]){
        return 0.0;
}

构建时间中的链接器错误:

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

此代码在Xcode 7.3中运行良好,但在升级到8.3后,它开始抛出链接器错误。

请帮忙。提前谢谢。

2 个答案:

答案 0 :(得分:0)

在Objective-C文件中导入-Swift.h附加的名为Project name的文件

请查看下面的导入文件示例

Texture2D texture;
texture = new Texture2D(2, 2);
texture.LoadImage(imageBytes);

当您使用.swift文件构建项目时,Xcode将生成此文件。

另外,您可以从以下问题中查看: How to import Swift code to Objective-C

答案 1 :(得分:0)

您可以获得此类错误检查,您的类列在目标“构建阶段”选项卡的“编译源”步骤下。通常Xcode会为您执行此操作,但有时会丢失绘图,您需要手动添加类文件。

要做到这一点:

TargetSettings - >构建阶段 - >编译源 - >添加你的类-.swift>构建并运行