問題タブ [objective-c-swift-bridge]

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 投票する
1 に答える
602 参照

ios - React Native / Swift Native モジュールは一度だけ動作します

反応ネイティブ iOS アプリで迅速なネイティブ モジュールを使用して、アセット URL からアニメーション GIF を生成します。最初の試行ではうまく機能していますが、一度使用した後にコンポーネントをエスケープして新しいアセットを渡すと、アプリがクラッシュし、次のエラーが表示されることがあります:

反応エラー:

反応エラー

または、xcode がこの Objective-C 関数にリダイレクトし、返される _instance に値がないことを通知することがあります。

客観的エラー

反応コンポーネントでネイティブ モジュールを呼び出す方法は次のとおりです。

Swift モジュールを GifGenerator.m にエクスポートする方法:

そして、私の迅速なクラスの重要な部分:

これらは私のコードの重要な部分ですが、必要に応じてさらに表示できます

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

javascript - React-Native: アプリを閉じている間のアプリのバックグラウンド更新

アプリのデータベースを 30 分または 60 分ごとに更新する必要があります。多くの検索の後、私はこのモジュールを見つけました:

https://github.com/transistorsoft/react-native-background-fetch

そのページにあるように:

iOS バックグラウンド フェッチは、基本的には (ユーザーのゴールデン タイムの時間帯に) 約 15 分ごとにアプリを起動し、アプリに正確に 30 秒のバックグラウンド実行時間を提供する API です。このプラグインは、background-fetch イベントが発生するたびに、提供された callbackFn を実行します。fetch イベントが発生するレートを上げる方法はなく、このプラグインはレートを UIApplicationBackgroundFetchIntervalMinimum の最も頻繁な値に設定します。iOS は、デバイスの使用状況と時刻に基づいてレートを自動的に決定します (例: fetch-レートは、ゴールデン タイムの時間帯で約 15 分です。たとえば、午前 3 時など、ユーザーが眠っていると推定される場合は頻度が低くなります)。

Swiftでコードを書くとどうなりますか? 反応ネイティブで sqlite を使用してデータを保存しています。ウェイクアップして新しいデータをチェックするコードをSwiftで書いた場合、反応ネイティブでデータを保存するために使用したのと同じデータベースにアクセスできますか?

react-native-sqlite-storage を使用して、データを反応ネイティブに保存しています。

https://github.com/andpor/react-native-sqlite-storage

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

c - Swift から C に文字列を渡して Swift に戻す

Swift と C の間で文字列を渡すときに、理解できない動作が見られます。次の Swift 関数を検討してください。

そしてC関数:

上記のように実行するdemoと (B2 行と B3 行のみがコメント化されます)、次の出力が得られます。

これには 2 つの点があります。1) C コードはポインター 0x10021b9b0 を取得しますが、Swift では、文字列は 0x000000010021b8a0 に格納されていました。私はそれらが同じであることを期待していたでしょうが、Swift は C に渡す前に文字列のコピーを作成すると思いますか? 2) もっと驚くべきことは、C から Swift に返されるポインタは同じ場所ですが、内容が異なるということです。さらに、最後の 2 つの print ステートメントは異なる出力を生成します。

ここで、 の行 A を単純にコメントアウトするとdemo、次の結果が得られます。

C 関数への呼び出しの前のすべてのものは正しくないため、これは驚くべきことです。

次に、行 B1 をコメントアウトし、B3 のコメントを解除すると (C への呼び出しを削除するだけです)、期待される出力が得られます。

B2 行のコメントを外して (A、B1、および B3 をコメントアウトして) 実行すると、次のようになります。

最後に、行 A と B2 のコメントを外して (B1 と B3 をコメント アウトして) 実行すると、期待どおりの結果が得られます。

C への呼び出しが予測できない方法でメモリを踏みつけているように見えますが、ここで何か間違ったことをしていますか?

macOS Sierra、Xcode 8.0、Swift 3.0 で動作します。

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

objective-c - Swift to Objective C ヘッダー ファイルが見つかりません

私は最新の Xcode 8.0 でこの問題を抱えており#import "xxx-Swift.h"、Objective C の実装をしようとすると、コード エディターで「ファイルが見つかりません」というエラーが表示されます。
プロジェクトは正常にビルドおよびデバッグされますが、この厄介な赤い弾丸を取り除くことはできないようです。
私はすべてのビルド設定を確認し、それらのすべてをトリガーしてプレイしました。
はい、これらの設定は間違いなく問題ないようです。
私が言うように、プロジェクトのビルドは成功します。
しかし、コード ウィンドウのエラーは本当に厄介です。
最終的に私はそれを修正しました

これを修正する方法や間違っていることについて、誰かがより良い提案をしていますか?
おそらく、Xcodeのバグですか?
フィードバック/提案をいただければ幸いです。

前もって感謝します。

0 投票する
3 に答える
21846 参照

swift - NSDictionary を Dictionary に変換するにはどうすればよいですか?

すでに XCode 8 に更新しており、コードを Swift 2 から Swift 3 に変換する必要があります。

NSDictionary以前、に変換したいときDictionaryは、次のように書きました。

はどこpost_paramsですかNSDictionary

しかし、Swift 3 では、次のエラーが表示されます。

なんで?変更点


編集 1

私も次のことを試しました:

しかし、それはこのエラーを与えます:

「NSDictionary!」 'Dictionary<String, Any>' に変換できません。 <code>as!</code> を使用してダウンキャストを強制するつもりでしたか?


編集 2

私も次のことを試しました:

NSDictionaryの代わりに宣言しますがNSDictionary!、機能しません。このエラーが発生しました:

'NSDictionary' は 'Dictionary<String, Any>' に変換できません。 <code>as!</code> を使用してダウンキャストを強制するつもりでしたか?


編集 3

私も次のことを試しました:

しかし、私はこのエラーを受け取りました:

「NSDictionary!」 'Dictionary<String, Any>!' に変換できません。 <code>as!</code> を使用してダウンキャストを強制するつもりでしたか?

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

objective-c - swift コードを obj c プロジェクトにブリッジする

Swift ブリッジを追加し、objc プロジェクトで Swift を許可するように適切な設定を変更しました。しかし、私の大きな問題は、ブリッジしようとしているswift3コードが、メンバーやタイプなどを持たないことを示しているため、プロジェクトですべてのエラーが発生していることです。それに加えて、解析はエラーを発生させ、動作したくありません。 .プロジェクトが古すぎて、プロジェクトが2歳か何かでこれを行うことができない場合、それがプロジェクトの基盤であるかどうかはわかりません...

メンバーの問題の迅速なエラー

解析エラー

ここに私が見たエラーのいくつかを示します。正しい方向に向けられることを願っています。

tltr-私が直面している大きな問題のいくつかは、タイプ「UIApplication」にメンバー「共有」がなく、タイプ「UIImage」の値とともに未解決の識別子「解析」を使用するとメンバー「描画」がないことです

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

objective-c - React Native Bridging: JSON を Swift 関数に渡す

私は Swift と Objective-C の初心者ですが、React Native から Swift へのブリッジを作成し、JSON と JSON 配列をパラメーターとして Swift に送信しようとしています。

React 内で、この関数を呼び出したいと思います。

つまり、文字列、オブジェクト、およびオブジェクト配列です。

私のブリッジのobjective-cファイルには、これがあります:

そして、私の迅速なファイルでは、多くの組み合わせを試しましたが、何もうまくいかないようです:

次のエラー メッセージが表示されます。 ネイティブ エラー メッセージに反応する

パラメータを Swift ファイルまで送信するにはどうすればよいですか?

ありがとう

/ピーター

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

ios - Objective C の Swift クラス

settings.swift があり、-Swift.h を ObjC クラスの .m ファイルにインポートしています。次のようなものが必要です:

@property(nonatomic, strong) 設定 *settings; ただし、-Swift.h は .m ファイルにインポートする必要があり、.h は settings.swift について何も知りません。これを行う方法を知っていますか?