2017-04-20 50 views
0

這是我的問題。從plist文件中獲取詳細信息與objective-c

我似乎無法想出一旦搜索特定的名稱鍵時如何訪問與「名稱」鍵級別相同的「詳細信息」鍵。也許我錯過了什麼?

我知道你可以通過[dict objectForKey:@"Details"]獲得「詳細信息」,但我不知道如何獲得與搜索到的相同水平的信息。

代碼:

- (IBAction)ScoringButtonView:(id)sender { 
    ScoringViewController *svController = [[ScoringViewController alloc] initWithNibName:@"ScoringView" bundle:[NSBundle mainBundle]]; 
    [self.navigationController pushViewController:svController animated:YES]; 

    UIButton *scoringButton = (UIButton*)sender; 
    NSLog(@"Scoring is %@ ", scoringButton.currentTitle); 
    svController.ScoringName = scoringButton.currentTitle; 
    NSString *path = [[NSBundle mainBundle] pathForResource:@"Scoring" ofType:@"plist"]; 
    NSArray *plistData = [NSArray arrayWithContentsOfFile:path]; 
    for (NSDictionary *dict in plistData) { 
     if ([[dict objectForKey:@"Name"] isEqualToString:scoringButton.currentTitle]) { 
      NSLog(@"Scoring == %@ ", scoringButton.currentTitle); 
//   svController.ScoringInfo = 
     } 
    } 

的plist:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
    <array> 
     <dict> 
      <key>Name</key> 
      <string>Standard</string> 
      <key>Details</key> 
      <string>dagsdfgds</string> 
     </dict> 
     <dict> 
      <key>Name</key> 
      <string>Advanced</string> 
      <key>Details</key> 
      <string>gfdsgdfsgdsfg</string> 
     </dict> 
    </array> 
</plist> 
+0

更好[字典objectForKey:@ 「名稱」] ',你會如何獲得細節? – Willeke

+2

你有什麼麻煩?你已經知道如何訪問'@「Name」'鍵。獲取'@「Details」鍵是完全一樣的。 – rmaddy

+0

@rmaddy是的,正確的。我只是不確定如何獲得與我搜索的「名稱」相同級別的「詳細信息」。 – Number1

回答

0

我不知道的困惑是什麼。您已經知道如何獲得Name密鑰的值。所獲得的價值爲Details關鍵是一樣的:

for (NSDictionary *dict in plistData) { 
    if ([dict[@"Name"] isEqualToString:scoringButton.currentTitle]) { 
     NSString *details = dict[@"Details"]; 
    } 
} 

注意我如何用現代的Objective-C語法,而不是老式的使用objectForKey:

0

//如果你得到`名稱,這個方法應該工作正常

//枚舉法比for循環

NSString *filePath = [[NSBundle mainBundle] pathForResource:@「LanguageList」 ofType:@"json"]; 
    NSString *myJSON = [[NSString alloc] initWithContentsOfFile:filePath encoding:NSJSONReadingAllowFragments error:NULL]; 
    NSError *error = nil; 
    NSDictionary * dict = [NSJSONSerialization JSONObjectWithData:[myJSON dataUsingEncoding:NSUTF8StringEncoding] options:kNilOptions error:&error]; 


    [dict[@"result"] enumerateObjectsUsingBlock:^(id _Nonnull objList, NSUInteger idx, BOOL * _Nonnull stop) { 

      NSLog(@「Values %@」,obj); 
      *stop = YES; 

     } 
    }];