web-dev-qa-db-fra.com

Objective-C Manière la plus simple de créer une chaîne séparée par des virgules à partir d'un tableau d'objets

J'ai donc un tableau nsmutablear avec un tas d'objets dedans. Je veux créer une chaîne séparée par des virgules de la valeur id de chaque objet.

64
Jhorra

Utilisez la méthode d'instance NSArraycomponentsJoinedByString:.

Dans l'objectif-C:

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

Dans Swift:

func componentsJoinedByString(separator: String) -> String

Exemple:

Dans l'objectif-C:

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

Dans Swift:

let joinedComponents = array.joined(seperator: ",")
164
rdelmar

Si vous recherchez la même solution dans Swift, vous pouvez utiliser ceci:

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

Pour vous assurer que votre tableau ne contient pas de valeurs nulles, vous pouvez utiliser un filtre:

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

Créer une chaîne à partir d'un tableau:

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

Créer un tableau à partir d'une chaîne:

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

Rapide :)

 var commaSeparatedString = arrayOfEntities.joinWithSeparator(",")
2
ioopl