2016-07-19 12 views
-3

私は次の配列があります。NSArrayのNSArrayからNSArrayリテラルのNSStringへ?例えば

@"@[@"string1", @"string2", @"string3"]" 

理由は単純です - あなたはどこか、それはある程度の時間がかかるリモートサーバからの配列の値を受信したとき:

NSArray *arr = @[@"string1", @"string2", @"string3"]; 

を私は、文字列を取得する必要があります。しかし、あなたはオフラインでアプリの動作をテストするためにこの文字列を見つけることができます。

+0

申し訳ありません私はあなたがそれのようなリテラルが必要な理由を理解していません。私はあなたがjsonとしてそれを得るサーバーから配列を取得すると思います。 – Krzysztof

+0

私はJSONに配列を変換する必要があるのですか? – childrenOurFuture

+0

to Krzysztof、多分あなたは正しいです。しかし、この場合でも問題はサーバーがjsonとxml(さらにはプレーンテキスト)を返す可能性があり、データと文字列の両方の形式で応答することもあります。最後に、サーバーだけでなく、動的な配列を生成するが、例えば、隠れたコードを持つライブラリ。あなたのケースはあまりにも特殊です。 –

答えて

0

私が見つけた最良の解決策:私は初めてのコードを実行するとき

[NSString stringWithFormat:@"@[@\"%@\"]", [arr componentsJoinedByString:@"\", @\""]] 

は、だから私はこの行を持つ配列から値を印刷します。この行は、覚えておくには十分複雑ですが、poコマンドを使用してコンソールでも貼り付けることができます。

次に、コンソールからこの行をコピーして、それを私の配列に割り当てます。

もっと良い方法を知っている人がいますか?

0

サーバーからJSONを取得するようにシミュレーションしているようですね。それがあなたの目標であれば、必要なものをNSDictionaryに入れてください。サーバからJSONを取得するときには、NSDictionaryにシリアル化してください。

NSArray *arr = @[@"string1", @"string2", @"string3"]; 
NSDictionary *myDictionary = @{@"myArray" : arr}; 
+0

単純な文字列の代わりに、辞書を取得し、それを直列化し、逆シリアル化することをお勧めします。私は自分の質問にjsonを全く言及していませんでした。 –

+0

なぜあなたは実際にそれらを配列のリテラル文字列にしたいのですか?なぜ "string1、string2、string3"ではないのですか?あなたはその用法についてもう少し詳しく教えてください。 – Swinny89

+0

私はリテラルを取得します。次に、この値を自分のコードにコピーしてプロキシを取得します。 1つの小さな変更と私は同じ値をテストするためにサーバーにアクセスする必要はありません –