1

私はしばらくの間、この特定の問題に取り組んできました。基本的に、Carthageを使用してフレームワークBigNerdRanch CoreDataStackを追加しました。

しかし、Objective-C コードで上記のフレームワークを使用する際に問題が発生しています。私のプロジェクトは、最近 Swift コードと Swift フレームワークを追加した Objective-C プロジェクトです。

これまでのところ、Swift コードで Swift フレームワークを問題なく使用できました。しかし、古い Obj-C、特に AppDelegate.m で上記の Swift フレームワークを使い始めると、何があってもコンパイラ エラーが発生し続けます。

私が理解していることから、次のようにインポートする必要があります。

#import <CoreDataStack/CoreDataStack-Swift.h>

私は AppDelegate.m で行いました。

私のプロジェクトには次の設定もあります。

プロジェクトのターゲット設定:

ここに画像の説明を入力

Swift コンパイルのビルド設定:

ここに画像の説明を入力

クラスに public を追加するために StackOverflow でいくつかの回答を見てきました。しかし、インポートされたフレームワークは自己完結型であり、XCode プロジェクトで表示するためのヘッダーしか含まれていないため、そうすることができません。

ここに画像の説明を入力

助けてくれてありがとう。

4

1 に答える 1

6

Swift で記述されたフレームワークを追加しました。それらが のサポートを有効にしない場合、Objective Cそれを目的の C コードで使用することはできません。

ただし、フレームワークと ObjC クラスの間のメディエーターとして使用されるクラスを迅速に作成できます。

@objc class coreDataStackConvertor: NSObject {

    func createStack(arg: Type) {

        // Code which uses the real CoreDataStack
    }

}

目的の c クラスから、コンバーター クラスのメソッドを使用できます。

于 2016-06-20T07:35:17.793 に答える