objective-c - Quelle est la raison pour laquelle il y a des valeurs nulles et des doublons lors de la traversée de NSDictionary dans iOS?
phpcn_u1582
phpcn_u1582 2017-05-02 09:34:28
0
2
746

Lorsque j'analyse JSON, des données nulles et en double apparaîtront lors du parcours du contenu du dictionnaire vers le modèle lors de la dernière étape. Chaque étape précédente est correcte. J'ai également ce problème lorsque je teste l'API du propre serveur d'un ami. J'ai utilisé l'API de nouvelles dans Baidu APIStore et j'ai eu le même problème. Veuillez me dire ce que j'ai fait de mal. Merci de m'éclairer.

Ce qui suit est le code, utilisant AFNetworking, il y a 5 tableaux en JSON, et le bas est une capture d'écran de la console, utilisant une boucle for et un for in commenté, les deux ont le même problème

    [manager POST:@"地址不便透露,抱歉" parameters:parameters progress:nil success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {
        NSLog(@"成功");
        if ([responseObject isKindOfClass:[NSDictionary class]]) {
            NSArray *jData = [responseObject objectForKey:@"array"];
            //NSLog(@"%@",jData);
            
            for (NSDictionary * dict in jData)
            {
                NSArray * keys=[dict allKeys];
                JKey * jKey=[[JKey alloc]init];
                /*
                for (NSString * str in keys) {
                    //对对象的属性一一赋值 KVC
                    [jKey setValue:[dict objectForKey:str] forKey:str];
                    if ([dict objectForKey:str] > 0) {
                        [self.testArray addObject:jKey];
                    }
                }
                 */
                for (NSInteger i=0; i<keys.count; i++) {
                    [jKey setValue:[dict objectForKey:keys[i]] forKey:keys[i]];
                    NSLog(@"jKey=%@",jKey.coverpath);
                }
            }
        }

phpcn_u1582
phpcn_u1582

répondre à tous(2)
曾经蜡笔没有小新

Je l'ai essayé moi-même et ce n'était aucun problème d'attribuer les valeurs une par une

for (NSDictionary * dict in jData)
{
    JKey * jKey=[[JKey alloc]init];
    jKey.title = [dict valueForKey:@"title"];
    jKey.link = [dict valueForKey:@"link"];
    jKey.Id = [dict valueForKey:@"id"];
    jKey.coverpath = [dict valueForKey:@"coverpath"];
    [self.testArray addObject:jKey];
}
黄舟

Essayez d'utiliser MJExtension
pour (NSInteger i = 0; i<array1.count; i++) {


     NormalModel * model = [NormalModel  objectWithKeyValues:array1[i]];
    
    [self.dataArray addObject:model];
}
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal