2016-07-19 35 views
-3

Zum Beispiel habe ich die folgende Array:NSArray von NSString zu NSString von NSArray-Literal?

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

Ich brauche String zu erhalten:

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

Der Grund ist einfach - wenn Sie die Array-Werte irgendwo von Remote-Server empfangen es einige Zeit dauert. Aber Sie könnten diese Zeichenfolge finden, um das App-Verhalten offline zu testen.

+0

Sorry, ich verstehe nicht, warum Sie so wörtlich brauchen würde. Ich denke, wenn Sie Array vom Server erhalten, erhalten Sie es als Json. – Krzysztof

+0

Was ich bekomme ist, müssen Sie das Array in JSON transformieren? – childrenOurFuture

+0

Krzysztof, vielleicht hast du recht. Aber das Problem ist sogar in diesem Fall, dass der Server sowohl json als auch xml (und sogar reinen Text) zurückgibt, und ich kann auch die Antwort sowohl als Datenformat als auch als Zeichenfolgenformat annehmen. Schließlich erzeugen nicht nur Server "dynamische" Arrays, sondern beispielsweise eine Bibliothek mit verstecktem Code. Dein Fall ist also zu spezifisch. –

Antwort

0

Die beste Lösung, die ich gefunden:

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

Also, wenn ich Code zum ersten Mal laufe ich die Werte aus dem Array mit dieser Zeile zu drucken. Diese Zeile ist komplex genug, um sich daran zu erinnern, aber genug einfach einzufügen und sogar in der Konsole mit po Befehl zu verwenden.

Dann kopiere ich einfach diese Zeile aus der Konsole und weise sie meinem Array zu.

Vielleicht weiß jemand einen besseren Weg?

0

Es sieht so aus, als ob Sie versuchen, JSON von einem Server zu bekommen? Wenn das Ihr Ziel ist, stellen Sie alles, was Sie brauchen, in eine NSDictionary, als wenn Sie die JSON vom Server bekommen, die Chancen sind, würden Sie es in eine NSDictionary serialisieren.

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

Statt einer einfachen Zeichenkette schlagen Sie vor, jedes Mal ein Wörterbuch zu bekommen, zu serialisieren, zu deserialisieren und ... Ich habe json in meiner Frage überhaupt nicht erwähnt - es könnte irgendein Format und sogar einfacher Text sein. –

+0

Warum sollten Sie eigentlich wollen, dass es sich um literale Strings im Array handelt? Warum nicht "string1, string2, string3"? Kannst du bitte etwas mehr Informationen über die Verwendung geben? – Swinny89

+0

Ich bekomme ein Literal. Dann kopiere ich diesen Wert in meinen Code und erhalte einen Proxy. Eine kleine Änderung und ich muss nicht auf den Server zugreifen, um die gleichen Werte zu testen –