Il n'y a pas d'Objectif-C, la syntaxe littérale pour NSSet. Il n'a pas vraiment le sens de l'utilisation de l'indice de subscripting pour accéder à NSSet éléments, bien que basés sur une clé subscripting pourrait. Soit par l'emballage ou sous-classement, vous peut ajouter votre propre.
(Correction):
A l'origine, j'avais pensé NSOrderedSet n'était pas pris en charge, soit, mais il s'avère que l'utilisation de l'indice de subscripting est pris en charge, mais il ne semble pas être un moyen d'initialiser une NSOrderedSet avec la syntaxe littérale. Toutefois, vous pouvez utiliser initWithArray: passer un littéral de tableau:
NSMutableOrderedSet* oset = [[NSMutableOrderedSet alloc] initWithArray:
@[@"a", @"b", @"c", @"d", @42]];
oset[2] = @3;
NSLog(@"OrderedSet: %@", oset);
Sorties:
OrderedSet: {(
a,
b,
3,
d,
42
)}
Selon cet excellent post de Mike Cendres, vous pouvez ajouter les méthodes qui sont utilisées à l'appui indexé subscripting à vos propres objets.
- (id)objectAtIndexedSubscript:(NSUInteger)index;
- (void)setObject: (id)obj atIndexedSubscript: (NSUInteger)index;
Et des méthodes similaires pour objet les incrustations:
- (id)objectForKeyedSubscript: (id)key;
- (void)setObject: (id)obj forKeyedSubscript: (id)key;
Ainsi, vous pouvez mettre en œuvre un wrapper (ou avec un peu plus de travail, la sous-classe) autour d'un NSSet et de fournir des clés basé sur la récupération. Cool!