0

.plist の内容で NSMutableDictionary を作成しようとしています。次のコードがあります。

NSString *myFile = [[NSBundle mainBundle] pathForResource:@"words" ofType:@"plist"];
NSMutableDictionary* myDict = [[NSMutableDictionary alloc]initWithContentsOfFile:myFile];
NSObject *randomWord = [myDict objectForKey:@"Item 6"];
NSLog(@"%@", randomWord);

myFile と myDict は埋められます (null ではありません) が、randomWord (またはそのことについては myDict) を出力したい場合は、"(null)" を出力します。

私はいたるところを見てきました。私は何を間違っていますか?

編集:

self    MainViewController *const   0x068c0d60
myDict  NSMutableDictionary *   0x0000586c
myFile  NSString *  0x068c31f0

および NSLog:

2012-05-10 12:26:22.302 project2[681:f803] (null)

myFile と myDict は満たされているように見えますが、randomWord はそうではありませんか?

編集#2:

NSLog(@"%@", myDict) 出力:

2012-05-10 14:15:17.016 project2[2641:f803] (null)

そうです、 myDict は空です。

4

1 に答える 1

0

ここで項目6のスペースを削除します

[myDict objectForKey:@"Item6"];

これがうまくいかない場合は、これを試してください

NSString *path = [[NSBundle mainBundle] pathForResource:@"words" ofType:@"plist"];
NSData* data = [NSData dataWithContentsOfFile:path];
NSMutableArray* array = [NSPropertyListSerialization propertyListFromData:data
                                                         mutabilityOption:NSPropertyListImmutable
                                                                   format:NSPropertyListXMLFormat_v1_0
                                                         errorDescription:NULL];
if (array) {
  NSMutableDictionary* myDict = [NSMutableDictionary dictionaryWithCapacity:[array count]];
  for (NSDictionary* dict in array) {
    State* state = [[State alloc] initWithDictionary:dict];
    [myDict setObject:state forKey:state.name;
    [state release];
  }
  NSLog(@"The count: %i", [myDic count]);
} else {
  NSLog(@"Plist does not exist");
}
于 2012-05-09T12:12:40.040 に答える