2012-04-26 9 views

risposta

150

Utilizzare il metodo di istanza NSArraycomponentsJoinedByString:.

- (NSString *)componentsJoinedByString:(NSString *)separator.

Esempio:

NSString *joinedComponents = [array componentsJoinedByString:@","];

+0

Così gli oggetti nel mio allineamento hanno 4 o 5 proprietà , come posso dire di unire solo i valori di identificazione? – Jhorra

+1

Se si registra uno dei tuoi oggetti cosa ottieni? Solo i valori di identificazione? Se è così, questo è ciò che otterrai con componentJoinedBuString: provalo e guarda. – rdelmar

+0

Lo proverò e vedrò – Jhorra

7

Se siete alla ricerca per la stessa soluzione in Swift, è possibile utilizzare questo:

var array:Array<String> = ["string1", "string2", "string3"] 
var commaSeperatedString = ", ".join(array) // Results in string1, string2, string3 

per assicurarsi che la matrice non contiene valori nulli, è possibile utilizzare un filtro:

array = array.filter { (stringValue) -> Bool in 
    return stringValue != nil && stringValue != "" 
} 
+0

Questo non sembra funzionare per NSMutableArray in Swift. La ricerca su Google deve ancora rivelare una risposta. – ultrageek

+0

@Twan Grazie, la tua risposta è (quasi) esattamente ciò che stavo cercando ... Quasi, perché ho bisogno di concatenare stringhe facoltative, alcune delle quali potrebbero essere nul (e quindi non voglio concatenarle), ma questa soluzione non accetta gli optionals String, richiede di scartarli ... forse hai avuto un problema simile in passato, se così potessi aiutarmi? – cdf1982

+0

@ cdf1982 Ho aggiornato la mia risposta. Puoi farlo usando il metodo del filtro. – Antoine

3

Crea String da Array:

-(NSString *)convertToCommaSeparatedFromArray:(NSArray*)array{ 
    return [array componentsJoinedByString:@","]; 
} 

Creare Array da String:

-(NSArray *)convertToArrayFromCommaSeparated:(NSString*)string{ 
    return [string componentsSeparatedByString:@","]; 
} 
2

Swift :)

var commaSeparatedString = arrayOfEntities.joinWithSeparator(",") 
+1

La domanda specificava un linguaggio di programmazione. Per favore considera di cambiarlo in obiettivo - c. – handiansom

+0

@handiansom Era il 2012. –

+0

Sì, l'ho notato anch'io.^^ – handiansom