0

次のように宣言された Swift の文字列の配列があります。

var DataStreamBuffer : [String] = {return []}()

Swift で新しい要素を追加するのは簡単です。私はただします:

DataStreamBuffer.append(new_string)

ただし、C ファイルから DataStreamBuffer に新しい要素を追加する必要があります。私の C コードの正しい手順は何ですか? また、Swift で DataStreamBuffer が C から見えるようにするにはどうすればよいですか (Bridging-Header.h で何かを宣言する必要がありますか?)

4

1 に答える 1

0

万が一、Objective-C を意味する場合は、これが役立つ場合があります。

https://developer.apple.com/library/ios/documentation/Swift/Conceptual/BuildingCocoaApps/MixandMatch.html#//apple_ref/doc/uid/TP40014216-CH10-ID122

私自身はまだ試していないので、Objective-C コードで Swift を呼び出せるかどうかはわかりません。その場合、どの C コードも有効な Objective-C (つまり、Objective-C は C のスーパーセット) であるため、プロジェクト内のどの C コードも Swift コードを呼び出すことができます。ただし、その逆は当てはまりません。

もう 1 つの方法は、Swift 文字列配列に追加する文字列を返す C 関数を用意することです。C 関数は Swift コードから呼び出され、文字列を取得して実際に Swift 配列に追加します。ブリッジ ヘッダーを使用して、C 関数を Swift から見えるようにします。

このアプローチのバリエーションは、C コードでコールバック関数を宣言し、ブリッジング ヘッダーを使用して Swift に宣言をインポートし、Swift でコールバックを実装することです。これはより難しいアプローチですが、アプリ ロジックのこの部分が C コードから制御されている場合に便利です。

あなたがしていることのより詳細なコンテキストを提供すると、人々はより具体的なアドバイスやいくつかの例を提供するかもしれません.

于 2016-02-12T03:40:43.167 に答える