문제

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의 방법이라는 것을 알고 있습니다.

도움이 되었습니까?

해결책

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

다른 팁

어떤 상황에서는 필터링 컬렉션이 '테스트 통과'방법으로 가장 명확하게 수행되지만이 간단한 경우에는 더 복잡해 보입니다.

NSArray *keys = [bookmarks allKeys];
NSArray *stanfordKeys = [keys objectsAtIndexes:[keys indexesOfObjectsPassingTest:^BOOL(NSString *key, NSUInteger idx, BOOL *stop) {
    return [key hasPrefix:@"Stanford"];
}]];
NSLog(@"%@", stanfordKeys);
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top