2016-08-08 52 views
0

Ich erhalte eine Zeichenfolge in meiner Anfrage; Die Zeichenfolge ist eine Liste von Zahlenpaaren, die mit eckigen Klammern gruppiert sind. (Die Liste stellt Polygone dar, die in meiner App angezeigt werden.)Convert NSString ein Array von Arrays von Zahlen zu NSArray

Ich muss es in eine NSArray konvertieren und alle Zahlen in Koordinaten analysieren.

Die empfangene Zeichenfolge ist

[[[53.502483, -113.420593], [53.503429, -113.421527], [53.503491, -113.421673], [53.503002, -113.42164], [53.502719, -113.421426], [53.502483, -113.420593]]] 

Alle Beispiele, die ich gefunden habe, sind nur eine einzige Liste in Text NSArray zu konvertieren. Ich konnte nichts finden, wo mehrere Arrays in der Zeichenfolge sind.

+1

Sie benötigen eine Regex, um die Zeichenfolge zwischen [] zu erhalten, und teilen Sie dann die Zeichenfolge basierend auf Komma (,) und fügen Sie das Ergebnis zu Array hinzu. Bitte zeigen Sie, was Sie versucht haben. –

+1

@TejaNandamuri Nein, du brauchst * keine Regex *. Es gibt mehrere andere Möglichkeiten, die Zeichenfolge zu analysieren. – rmaddy

+1

@rmaddy ihr nehmt alles zu wörtlich: P. Ja, es gibt noch andere Möglichkeiten. –

Antwort

3

Der String sieht aus wie gültig JSON, so ...

NSError *error; 
NSData *data = [string dataUsingEncoding:NSUTF8StringEncoding]; 
NSArray *array = [NSJSONSerialization JSONObjectWithData:data options:nil error:&error]; 

Wird das Array geben, sofern string die Eingabe enthält. Wenn es von einer Webanfrage kommt, können Sie einen Schritt speichern und die Anfrage NSData direkt konvertieren.

+0

Ich tat das und das Polygon wurde nicht auf der Karte gezeichnet. Nachdem ich diese Frage 20 Minuten lang gepostet hatte, entdeckte ich, dass der Server den Breitengrad anstelle des Längengrads zurückgibt und umgekehrt .. Saghhh 2 Stunden Suche nach nichts. Vielen Dank für deine Antwort und ich werde es als eine Antwort für deine Hilfe markieren :) –