0

Xcode を使用してObj-C コード (優れたExpressionsAdd files... ) を Swift プロジェクトに追加しましたが、ブリッジ ヘッダーを作成するかどうかは尋ねられませんでした。そこで、Obj-C コードのグループで自分で作成し、#import必要な単一のヘッダーに編集して、ビルド設定の Swift コンパイラでそのファイルが参照されるようにしました。次に、Obj-C コードを調べて、.m ファイルがターゲットにあることを確認しました。それらはコンパイル ソースにリストされています。

問題のヘッダーには次のものが含まれます。

@interface NSNumber (Expression)
+ (NSNumber *)numberByParsingExpression:(NSString *)expression;
+ (NSNumber *)numberByParsingExpression:(NSString *)expression withVariables:(NSDictionary *)varDictionary;
@end

今、私はこの投稿と同じ基本的な構文を使用してこのコードを呼び出そうとしています:

let result = NSNumber.numberByParsingExpression(f.1)

テーマのいくつかのバリエーションとともに。しかし、「タイプ 'NSNumber' にはメンバー 'numberByParsingExpression' がありません」とコンパイルされません。

ここでステップを逃しましたか?

4

2 に答える 2

1

わかりました、これは Xcode peccadillo であることがわかりました。

グループ内にヘッダー ファイルを作成すると、実際にはソース フォルダーに物理的に配置されます。したがって、私の場合、ヘッダーは /project/subproject/.h に作成されましたが、Xcode 内ではベース フォルダー /project/.h の一部として表示されました。

そのため、実際には 2 つのヘッダーがありました。1 つは何も入っていない適切な場所にあり、もう 1 つは Xcode 内で編集されていた間違った場所にありました。そのため、ファイル インスペクターを見て、ブリッジ ヘッダーが正しい場所に配置されていることを確認する必要があります。

于 2016-03-24T14:27:43.183 に答える