問題タブ [objc-bridging-header]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
389 参照

ios - Swift 3 の値型で Objective-C カテゴリのプロパティ (関連参照) にアクセスする

Objective-C クラスの .h ファイルで、次のように NSIndexPath のカテゴリを作成しました。

そのクラスの .m ファイルでは、次のように実装しました。

ここで、IndexPath を使用して Swift 3 の NSIndexPath の subRow プロパティにアクセスすると、エラーが発生します。

タイプ 'IndexPath' の値にメンバー 'subRow' がありません

型キャストを使用してアクセスしようとしている場合

「subRow」値として常に「0」を返します。IndexPath が値型で NSIndexPath が参照型であるためかもしれません。

Objective-C を使用してカスタム デリゲートに UITableViewDelegate を実装し、それを Swift クラスに実装しましたが、カスタム デリゲート メソッドを実装している Swift では、この問題に直面しています。

また、カスタム デリゲートの実装 (Swift コード) で IndexPath の代わりに NSIndexPath を使用しようとしましたが、「タイプ YVViewController がプロトコルに準拠していません。候補には一致しないタイプがあります」というエラーが表示されました。

これが私のカスタムデリゲート宣言です:

Swift 2.x では問題なく動作しますが、Swift 3 に移行した後、この問題に直面しています。

0 投票する
1 に答える
658 参照

objective-c - Obj-Cの非null関数はSwiftに何を返しますか?

ブリッジング ヘッダーを使用して Swift で使用できる目的の C ライブラリがあります。

私のパブリック メソッドの 1 つは、返すと注釈が付けられてnonnullいますが、実際には、場合によっては nil を返すことがあります。

このメソッドを呼び出す Swift コードが「nil のオプション値をアンラップする」ためにクラッシュすることを期待していましたが、実際にはそうではありません。

目的 C:

スウィフト ヘッダー:

生成ヘッダーは次のようになります。

迅速な使用法:

po戻り値を取得すると、この結果が得られます

どうして?

0 投票する
0 に答える
124 参照

swift - Swift ビルドが長すぎます。おそらく、ビルド時にすべてのファイルにヘッダー ファイルが含まれているためです。

私のプロジェクトは、Amazon 商用サービスを使用しています。という名前のヘッダーファイルがありますCommonTypes.h。このファイルは、約 130 の他のヘッダー ファイルをインポートします。Bridging-Header.h私のアプリのファイルにはCommonTypes.h、他のライブラリの横に含まれています。

アプリのビルド時に、swift ファイルのビルドに 5 ~ 7 秒ほど時間がかかりすぎることがわかりました。プロジェクトに 500 個の迅速なファイルが含まれていると仮定すると、再構築に約 50 分かかります。

プロジェクトのビルド時に表示されるログ:

すべてのファイルをビルドするときにこれらのヘッダーファイルをインポートするため、ビルダーには時間がかかると思います。

これらのライブラリを一度だけ強制的にビルドする方法を知っている人はいますか?

0 投票する
0 に答える
57 参照

ios - iOS Swift プロジェクト、Objective-C ファイルがあり、Swift クラスを Objective-C ファイルにインポートしたい

私は Swift プロジェクトを持っており、いくつかの Objective C クラス ファイルをこの Swift プロジェクトに正常に追加し、ブリッジ ヘッダーを使用してプロジェクトで使用できるようにしました。

これらの Objective C クラスでは、Swift クラスをインポートしたいと考えています。これどうやってするの?

私はたくさん検索しましたが、これに対する答えはまだ見つかりません。回答されたほとんどの質問は、Objective-C クラスを Swift プロジェクトにインポートする方法、または Swift クラスを Objective-C プロジェクトにインポートする方法に関するものです。でも私の場合は違う

0 投票する
2 に答える
341 参照

ios - iOS Swift プロジェクト、既に Objective-C ファイルをインポートしており、Swift クラスをこの Objective-C にインポートしたい

私はSwiftプロジェクトを持っており、ObjectiveClass.hなどのObjective CクラスファイルをこのSwiftプロジェクトに追加し、ブリッジヘッダーを使用してプロジェクトで使用できるようにしました。ObjectiveClass.h クラスで、Swift プロジェクトの Swift クラスをインポートします。これどうやってするの?

私はたくさん検索しましたが、これに対する答えはまだ見つかりません。回答されたほとんどの質問は、Objective-C クラスを Swift プロジェクトにインポートする方法、または Swift クラスを Objective-C プロジェクトにインポートする方法に関するものです。でも私の場合は違う

0 投票する
1 に答える
266 参照

ios - 目的の C コードを迅速に使用したい。ブリッジング ヘッダーを追加すると、すべてのプリミティブ データ型でエラーが発生し始めます

私はモデルを持っています

私のブリッジヘッダーは次のようになります

私のSwiftコントローラーは次のようになります

次のようなコンパイル時エラーが発生し始めます

ビルド設定に移動したところ、ヘッダー ファイル参照がObjective-C Bridging headerキー に設定されていることがわかりましたここに画像の説明を入力