无法从 JSON 文件填充 NSMutableArray

Unable to populate NSMutableArray from JSON file

我有以下代码用于从 JSON 文件填充 NSMutableArray,以便稍后将其用作 CollectionView 的数据源:

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"governorates" ofType:@"json"];
NSData *content = [[NSData alloc] initWithContentsOfFile:filePath];
NSDictionary *governorateJson = [NSJSONSerialization JSONObjectWithData:content options:kNilOptions error:nil];
NSArray *govNSArray = [governorateJson objectForKey:@"gouvernorats"];
if ([govNSArray isKindOfClass:[NSArray class]]){
    for (NSDictionary *dictionary in govNSArray) {
        Governorate *govModel = [Governorate new] ;
        govModel.govID = [dictionary objectForKey:@"id"];
        govModel.govNameAr = [[dictionary objectForKey:@"nom"] objectForKey:@"ar"];
        govModel.govNameFr = [[dictionary objectForKey:@"nom"] objectForKey:@"fr"];
        [self.governoratesArray addObject:govModel];
        [self.governoratesString addObject:govModel.govNameAr];
        NSLog(@"Count: %lu", (unsigned long) self.governoratesString.count);
    }
    NSLog(@"Total Count: %lu", (unsigned long) self.governoratesString.count);
}

问题是 NSMutableArray 似乎总是空的,我在另一个地方使用完全相同的代码和相同的 JSON 文件并且工作正常。

在使用可变数组之前检查是否正在分配初始化。

你必须检查序列化数组或字典格式的数据后得到的数据类型。还要检查 json 解析前的响应格式....

另一个建议是尝试 "Value for Key " 而不是 object 作为 key

 NSMutableAray *arry= [governorateJson      
     valueForKey:@"gouvernorats"];

您是否在任何地方创建了一个新的空可变数组?如果您不这样做,那么 addObject 将不会执行任何操作。