2017-04-14 85 views
0

我想从目标c文件中调用swift函数。从目标c调用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它开始抛出链接器错误。

请帮忙。提前致谢。

回答

0

导入文件名为项目名称由-Swift.h在Objective-C的文件附加

请检查例如导入文件的下面

#import “ProjectName-Swift.h” 

当你建立你的项目的Xcode会生成此文件.swift文件。

另外,还可以从下面的问题检查: How to import Swift code to Objective-C

+0

我已经包含了该文件。 – Akash

0

就可以得到这种类型的错误检查类是在你目标的“构建阶段”选项卡中的“编译源”步骤中列出。通常Xcode会为你做这件事,但有时它会丢失情节,你需要手动添加类文件。

要做到这一点:

TargetSettings - >构建阶段 - >编译源代码 - >添加类-.swift>生成和运行