2017-04-20 95 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; 

     } 
    }];