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 のメソッドであることを知っています。

4

2 に答える 2

3
for (NSString * key in [bookmarks allKeys])
{
  if ([key hasPrefix:@"Stanford"])
  {
    NSLog(key);
  }
}
于 2009-07-16T20:06:17.200 に答える
0

この単純なケースではより複雑に見えますが、状況によっては、コレクションのフィルタリングは「合格テスト」ファミリーのメソッドで最も明確に行われます。

NSArray *keys = [bookmarks allKeys];
NSArray *stanfordKeys = [keys objectsAtIndexes:[keys indexesOfObjectsPassingTest:^BOOL(NSString *key, NSUInteger idx, BOOL *stop) {
    return [key hasPrefix:@"Stanford"];
}]];
NSLog(@"%@", stanfordKeys);
于 2014-05-07T16:12:33.923 に答える