Falha no aplicativo ao tentar carregar uma grande quantidade de dados no meu aplicativo
Estou tentando carregar umJSON
de mais de 40.000 registros no meuRealm Database
. Aqui está a minha função
AFJSONRequestOperation *operation = [[AFJSONRequestOperation alloc]init];
[AFJSONRequestOperation addAcceptableContentTypes:[NSSet setWithObject:@"text/html"]];
operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
NSArray *relations = [JSON copy];
NSLog(@"COUNT SI %d",relations.count);
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSArray *relations = [JSON copy];
RLMRealm *realm = [RLMRealm defaultRealm];
[realm beginWriteTransaction];
for (NSDictionary *dict in relations) {
Relation *relation = [[Relation alloc]init];
relation.rel_address = [NSString stringWithFormat:@"%@",[dict valueForKey:@"Address"]];
relation.rel_balanceTotal = [[dict valueForKey:@"BalanceTotal"]doubleValue];
relation.rel_bank_country_code = [NSString stringWithFormat:@"%@",[dict valueForKey:@"BankCountryCode"]];
relation.rel_bank_number = [NSString stringWithFormat:@"%@",[dict valueForKey:@"BankNumber"]];
relation.rel_city = [NSString stringWithFormat:@"%@",[dict valueForKey:@"City"]];
relation.rel_city_id = [[dict valueForKey:@"CityId"]intValue];
relation.rel_code = [NSString stringWithFormat:@"%@",[dict valueForKey:@"Code"]];
relation.rel_country = [NSString stringWithFormat:@"%@",[dict valueForKey:@"Country"]];
relation.rel_country_code = [NSString stringWithFormat:@"%@",[dict valueForKey:@"CountryCode"]];
relation.rel_customerProspect = [NSString stringWithFormat:@"%@",[dict valueForKey:@"CustomerProspect"]];
relation.rel_customerCode = [NSString stringWithFormat:@"%@",[dict valueForKey:@"CustomerProspectCode"]];
relation.rel_email = [NSString stringWithFormat:@"%@",[dict valueForKey:@"Email"]];
relation.rel_expired_total = [[dict valueForKey:@"ExpiredTotal"]doubleValue];
relation.rel_fax = [NSString stringWithFormat:@"%@",[dict valueForKey:@"Fax"]];
relation.rel_gsm = [NSString stringWithFormat:@"%@",[dict valueForKey:@"GSM"]];
relation.rel_latitude = [[dict valueForKey:@"Latitude"]doubleValue];
relation.rel_longitude = [[dict valueForKey:@"Longitude"]doubleValue];
relation.rel_memo = [NSString stringWithFormat:@"%@",[dict valueForKey:@"Memo"]];
relation.rel_name = [NSString stringWithFormat:@"%@",[dict valueForKey:@"Name"]];
relation.rel_phone = [NSString stringWithFormat:@"%@",[dict valueForKey:@"Phone"]];
relation.rel_turnovertotal = [[dict valueForKey:@"TurnoverTotal"]doubleValue];
relation.rel_vat_country_code = [NSString stringWithFormat:@"%@",[dict valueForKey:@"VATCountryCode"]];
relation.rel_vat_number = [NSString stringWithFormat:@"%@",[dict valueForKey:@"VATNumber"]];
relation.rel_website = [NSString stringWithFormat:@"%@",[dict valueForKey:@"Website"]];
relation.rel_zipcode = [NSString stringWithFormat:@"%@",[dict valueForKey:@"ZipCode"]];
[realm addObject:relation];
}
[realm commitWriteTransaction];
compblock(YES);
});
} failure:^( NSURLRequest *request ,NSHTTPURLResponse *response ,NSError *error , id JSON ){
NSLog(@"error is %@",error);
}];
[operation start];
Tudo funciona bem para 10.000 objetos. Mas quando vou para 40 000, recebo este erro:
Communications error: <OS_xpc_error: <error: 0x356dc614> { count = 1, contents =
"XPCErrorDescription" => <string: 0x356dc86c> { length = 22, contents = "Connection interrupted" }
}>
alguém pode me ajudar por favor? Desde já, obrigado !!
EDITAR
Falha antes do log "COUNT SI". Então eu acho que tem algo a ver com a AFNetworking? Também notei que ele não travou no simulador ...