Iトラブル署名の交流機能のためのアレイにスイフト文字列の配列を変換した午前:スウィフト、CONSTチャー*のCONSTで配列* CONST *
PGconn *PQconnectStartParams(const char * const *keywords, const char * const *values, int expand_dbname)
*次のように機能することを「オプション」と呼ばれ、フィード:[文字列]:だから私は辞書の内容を変換しよう
<UnsafePointer<UnsafePointer<Int8>>
:としてが現れ
var keys = [[Int8]]()
var values = [[Int8]]()
for (key, value) in options {
var int8Array = key.cStringUsingEncoding(NSUTF8StringEncoding)!
keys.append(int8Array)
int8Array = value.cStringUsingEncoding(NSUTF8StringEncoding)!
values.append(int8Array)
}
pgConnection = PQconnectStartParams(UnsafePointer(keys), UnsafePointer(values), 0)
コンパイルして実行しますが、機能しません。
洞察力があれば幸いです。
を行うことによって、適切なC互換のポインタを取得することができます:あなたが話しています'PQconnectdbParams()'という名前の関数はまだ 'PQconnectStartParams()'という名前の関数を呼び出しています...? – RastaJedi
'const char * const * keywords'を見てください。 'keywords'は' const char'への 'const'ポインタへのポインタです(これは' char const'と同じです、両方とも "定数文字"を意味します)。これは、単一の文字列( "nullで終了する文字配列")を探しているわけではないが、文字列の*配列*を探している可能性が高いことを意味します。 'char ** argv'のようなものです。私はSwiftについてはあまりよく分かりませんが、Swift文字列をCのNULL終端文字配列に変換する方法を理解してから、それらの配列をC配列に変換する方法を見つける必要があります文字列、私は思う。 – RastaJedi
申し訳ありません。事務的エラードキュメントの間違った部分を見ていた。関数のシグネチャを修正しました。あなたは正しいです。ヌル終端配列を探しているわけではありません。私は弦の必要と配列。私は自分のコードで生成していると思っていたものです。 – user5892643