-1

次のようなカスタム plist ファイルがあります。

カスタム plist ファイル

データが存在することはわかっています (NSLog を使用して表示しました)。私の問題は、実行時エラーが発生することです: object can't be nil when reading the first line after reading *hexColors with this code:

NSString *pListPath = [[NSBundle mainBundle] pathForResource:@"ColorSchemes" ofType:@"plist"];

// Load the file content and read the data into the array
NSDictionary *colorsDict = [[NSDictionary alloc] initWithContentsOfFile:pListPath];
//  NSLog(@"\ncolorsDict: %@", colorsDict);

NSMutableArray *hexColors = [[NSMutableArray alloc]init];
[hexColors addObject:[colorsDict objectForKey:@"buttons"]];
[hexColors addObject:[colorsDict objectForKey:@"calendar"]];
[hexColors addObject:[colorsDict objectForKey:@"leftGrid"]];
[hexColors addObject:[colorsDict objectForKey:@"topGrid"]];
[hexColors addObject:[colorsDict objectForKey:@"dataGrid"]];

addObject コードの何が問題なのかわかりません (以前は機能していましたが、変更は加えられていません)。誰かがこれを理解するのを手伝ってもらえますか?

4

1 に答える 1

1

私が間違っていなければcolorsDict、ルート辞書です。そのキーはSpring, Autumn, etc.. キーbutton, calendar, leftGridは、シーズン キーを通じてアクセスできる辞書の一部です。

あなたがする必要があるでしょう(例えば)

NSDictionary *realColorsDict = [colorsDict objectForKey:@"Spring"];
[hexColors addObject:[realColorsDict objectForKey:@"buttons"]];
[hexColors addObject:[realColorsDict objectForKey:@"calendar"]];
[hexColors addObject:[realColorsDict objectForKey:@"leftGrid"]];
[hexColors addObject:[realColorsDict objectForKey:@"topGrid"]];
[hexColors addObject:[realColorsDict objectForKey:@"dataGrid"]];

これで問題が解決するかどうか教えてください:)

于 2013-09-25T16:02:08.523 に答える