2016-05-25 3 views
0

Ich habe ein Problem mit NSString und NSMutableArray. Wenn ich eine Zeichenfolge aus einem veränderbaren Array abrufe, hat sie mehr weiße Leerzeichen und ich verstehe nicht, warum das passiert.NSString in NSMutableArray ist nicht das gleiche auf myString

ich erklären werde, habe ich ein Array, und füllen es durch Abfrage (mit sqlite3):

NSMutableArray *fileNameAttached = [[NSMutableArray alloc] initWithArray:[self.dbManager loadDataFromDB:query]]; 

und es ist so:

<__NSArrayM 0x15e233980>(
<__NSArrayM 0x15e26afd0>(
Allegato N. 1 
) 

) 

Wenn ich die Zeichenfolge Allegato N. abrufen 1 mit diesem Code:

NSString *test = [NSString stringWithFormat:@"%@", [fileNameAttached objectAtIndex:0] ]; 

String-Test ist wie folgt:

(
    "Allegato N. 1" 
) 

Warum mein String nicht nur:

Allegato N.1 

Als ich es in einem Etikett setzte es nicht korrekt ist, weil enthält() und weiße Flächen. Die Abfrage für die DB ist:

NSString *query = [NSString stringWithFormat:@"SELECT fileName FROM Attach WHERE ID = '%@';",ticketID]; 

und arbeitet in der Tat perfekt, wenn ich Tableview Zelle füllen, es ist OK. Aber ich verstehe das nicht, weil mein Stringtest 3 Zeilen mit mehr Leerstellen enthält.

Bitte helfen Sie mir.

Vielen Dank und Entschuldigung für mein Englisch.

+3

Nach Ihrem Log helfen: es scheint, dass es eine NSArray von NSArray von NSString ist. Also 'NSString * test = [[fileNameAttached objectAtIndex: 0] objectAtIndex: 0];', aber das könnte ein Problem anderswo (Format/Fetch falsch) – Larme

+0

Ich versuche Ihre Lösung und es funktioniert perfekt. Danke, kannst du mir das erklären, weil mein Array NSArray von NSArray ist ... Wo habe ich Fehler gemacht ?? Vielen Dank – pampua84

+0

Ohne den Code Ihres Fetch können wir nicht erraten. Aber wenn Ihre Abfrage (falls sie verschiedene Ergebnisse sind) ein NSArray von NSArray von NSString geben soll, ist es korrekt. – Larme

Antwort

1

In Ihrem Protokoll gibt es zwei Arrays.

( ( Allegato N. 1 ) )

Es gibt zwei runden Klammern bedeutet, das ist, zwei Arrays.

Du Abrufen von Daten wie NSString *test = [NSString stringWithFormat:@"%@", [fileNameAttached objectAtIndex:0] ];

Das erste Objekt der äußeren Anordnung bedeutet, so ist es ein weiterer Array ist. so müssen Sie so etwas wie

NSArray *temp =[fileNameAttached objectAtIndex:0]; 

NSString *test = [NSString stringWithFormat:@"%@", [temp objectAtIndex:0] ]; 

I think you are using appcoda's DBManager class to do this. If it is so then you everytime got two array when load query.

Hoffnung, dies zu tun :)

+0

Ja, ich habe AppCodas DBManager-Klasse verwendet. Wie kann ich also NSArray aus NSArray extrahieren oder wie kann ich das in der DBManager-Klasse lösen? Vielen Dank – pampua84

+0

Sie brauchen nichts zu lösen. Sie haben immer Array von Array jedes Mal, so können Sie es analysieren, wie ich in der Antwort erwähnt. – Lion

Verwandte Themen