この方法で JSON ファイルを読み取ります。
NSString *fileContentHomework = [[NSString alloc] initWithContentsOfFile:homeworkPath];
SBJsonParser *parserHomework = [[SBJsonParser alloc] init];
NSDictionary *dataHomework = (NSDictionary *) [parserHomework objectWithString:fileContentHomework error:nil];
NSArray *nameofHomework = [dataHomework objectForKey:@"nameH"];
NSArray *homeworkDifficulty = [dataHomework objectForKey:@"difficultyH"];
CHOrderedDictionary* DictionaryHomework = [CHOrderedDictionary dictionaryWithObjects:homeworkDifficulty forKeys:nameofHomework];
...それから...
NSArray *allKeys2 = [DictionaryHomework allKeys];
for (int i = 0; i < [allKeys count]; i++) {
....
NSString *key2 = [allKeys2 objectAtIndex:i];
NSObject *obj2 = [DictionaryHomework objectForKey:key2];
int val;
val = [key2 intValue];
....
JSON ファイルは次のようになります。
{"difficultyH":["name", "name"],"nameH":["2", "2"]}
上記のようにファイル内のデータが等しい場合、アプリは objectAtIndex エラーを返しますが、次の場合のようにデータが異なる場合、アプリは正常に動作することに気付きました。
{"difficultyH":["name", "name2"],"nameH":["2", "3"]}
なんで?