Quindi ho un nsmutablearray con un gruppo di oggetti al suo interno. Voglio creare una stringa separata da virgola del valore id di ciascun oggetto.Objective-C Modo più semplice per creare una stringa separata da virgole da una matrice di oggetti
Objective-C Modo più semplice per creare una stringa separata da virgole da una matrice di oggetti
risposta
Utilizzare il metodo di istanza NSArray
componentsJoinedByString:
.
- (NSString *)componentsJoinedByString:(NSString *)separator
.
Esempio:
NSString *joinedComponents = [array componentsJoinedByString:@","];
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 != ""
}
Questo non sembra funzionare per NSMutableArray in Swift. La ricerca su Google deve ancora rivelare una risposta. – ultrageek
@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
@ cdf1982 Ho aggiornato la mia risposta. Puoi farlo usando il metodo del filtro. – Antoine
Crea String da Array:
-(NSString *)convertToCommaSeparatedFromArray:(NSArray*)array{
return [array componentsJoinedByString:@","];
}
Creare Array da String:
-(NSArray *)convertToArrayFromCommaSeparated:(NSString*)string{
return [string componentsSeparatedByString:@","];
}
Swift :)
var commaSeparatedString = arrayOfEntities.joinWithSeparator(",")
La domanda specificava un linguaggio di programmazione. Per favore considera di cambiarlo in obiettivo - c. – handiansom
@handiansom Era il 2012. –
Sì, l'ho notato anch'io.^^ – handiansom
Così gli oggetti nel mio allineamento hanno 4 o 5 proprietà , come posso dire di unire solo i valori di identificazione? – Jhorra
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
Lo proverò e vedrò – Jhorra