2009-07-16 4 views
1
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); 

Я понимаю, что материал для программирования iPhone в Стэнфорде был избит до смерти (я уверен). Я просто немного разобрался в том, как напечатать ключи с помощью URL-адресов. Я также не могу понять, как печатать только ключи, которые начинаются со Стэнфорда. Я знаю, что это метод NSString.Как получить доступ к ключам в NSMutableDictionary?

ответ

3
for (NSString * key in [bookmarks allKeys]) 
{ 
    if ([key hasPrefix:@"Stanford"]) 
    { 
    NSLog(key); 
    } 
} 
+0

Спасибо за помощь. – nullArray

0

В некоторых ситуациях, фильтрация коллекции делается наиболее ясно с «проходящим тестом» семейством методов, хотя он выглядит более сложным в этом простом случае.

NSArray *keys = [bookmarks allKeys]; 
NSArray *stanfordKeys = [keys objectsAtIndexes:[keys indexesOfObjectsPassingTest:^BOOL(NSString *key, NSUInteger idx, BOOL *stop) { 
    return [key hasPrefix:@"Stanford"]; 
}]]; 
NSLog(@"%@", stanfordKeys); 
Смежные вопросы