2017-04-14 4 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 } 
} 

のObjective 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) 

このコードは、アップグレード後に8.3へのXcode 7.3で正常に動作しますが、それリンカエラーをスローし始めます。

助けてください。前もって感謝します。

答えて

0

あなたのObjective-Cファイルに-Swift.hによって追加プロジェクト名を名前のインポートファイルのインポートファイルの例の下に確認してください

#import “ProjectName-Swift.h” 

あなたとあなたのプロジェクトをビルドするときXcodeは、このファイルを生成します。 .swiftファイル。あなたがチェックし、あなたのクラスは、あなたのターゲットの「フェーズの構築」タブの「ソースをコンパイル」ステップの下に表示され、このタイプのエラーを取得することができます How to import Swift code to Objective-C

+0

実行します。 – Akash

0

また、あなたは質問の下から確認することができます。通常はXcodeがこれを行いますが、プロットが失われることがあり、クラスファイルを手動で追加する必要があります。

はこれを行うには:

TargetSettings - >ビルド・フェーズ - >ソースをコンパイル - >あなたのクラスを追加-.swift>ビルドと私はファイルが含まれている

関連する問題