Come faccio ad accedere i tasti di un NSMutableDictionary?
-
16-09-2019 - |
Domanda
NSMutableDictionary *bookmarks = [NSMutableDictionary dictionary];
[bookmarks setObject:[NSURL URLWithString:(NSString *) @"http://stanford.edu"] forKey:
@"Stanford University"];
[bookmarks setObject:[NSURL URLWithString:(NSString *) @"http://apple.com"] forKey:
@"Apple"];
[bookmarks setObject:[NSURL URLWithString:(NSString *) @"http://itunes.stanford.edu"] forKey:
@"Stanford on iTunesU"];
[bookmarks setObject:[NSURL URLWithString:(NSString *) @"http://stanfordshop.com"] forKey:
@"Stanford Mall"];
NSEnumerator *browser = [bookmarks keyEnumerator];
id each;
NSURL *url;
while ((each = [browser nextObject])) {
url = [bookmarks objectForKey:(NSString *)each];
NSLog('%@'", url);
Mi rendo conto roba di programmazione iPhone di Stanford è stato picchiato a morte (sono sicuro). Sto solo avere un po 'di problemi a trovare il modo avrei stampare le chiavi con gli URL. Anche io non riesco a capire come stampare solo le chiavi che iniziano con la Stanford. So che è un metodo di NSString però.
Soluzione
for (NSString * key in [bookmarks allKeys])
{
if ([key hasPrefix:@"Stanford"])
{
NSLog(key);
}
}
Altri suggerimenti
In alcune situazioni, il filtraggio collezioni è fatto più chiaro con la famiglia ‘test di passaggio’ di metodi, anche se sembra più complicato in questo caso semplice.
NSArray *keys = [bookmarks allKeys];
NSArray *stanfordKeys = [keys objectsAtIndexes:[keys indexesOfObjectsPassingTest:^BOOL(NSString *key, NSUInteger idx, BOOL *stop) {
return [key hasPrefix:@"Stanford"];
}]];
NSLog(@"%@", stanfordKeys);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow