我想解析许多 JSON 字符串。这是代码:
while(stations.count > 0) {
NSString*string = [[[NSString alloc] initWithString:[stations objectAtIndex:0]] retain];
NSMutableDictionary*dic = [[[NSMutableDictionary alloc]init]retain];
NSData*data = [[[NSData alloc] initWithData:[string dataUsingEncoding:NSUTF8StringEncoding]]retain];
NSMutableDictionary* pars = [[NSMutableDictionary alloc]initWithDictionary:[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil]];
[dic setObject:[NSString stringWithString:[pars objectForKey:@"nm"]] forKey:@"nm"];
[dic setObject:[NSString stringWithString:[pars objectForKey:@"btr"]] forKey:@"btr"];
[dic setObject:[NSString stringWithString:[pars objectForKey:@"id"]] forKey:@"id"];
[dic setObject:[NSString stringWithString:[pars objectForKey:@"cntr"]] forKey:@"cntr"];
[dic setObject:[NSString stringWithString:[pars objectForKey:@"gnr"]] forKey:@"gnr"];
[pars release];
@try {
[parsedData addObject:[NSDictionary dictionaryWithDictionary:dic]];
}
@catch (NSException* exc) {
NSLog(@"%@, %@", exc.description, exc.reason);
}
[dic release];
[data release];
[string release];
[stations removeObjectAtIndex:0];
if (i%1000==0) {
NSLog(@"nnnn %i %i", parsedData.count, stations.count);
}
i++;
float k = count;
k = (i + 1)/k;
[self performSelectorOnMainThread:@selector(increaseProgress:) withObject:[NSNumber numberWithFloat:k] waitUntilDone:YES];
}
在将(通常但不是每次)字符串添加到数组时,我得到错误:
exc_breakpoint(代码=exc_i386_bpt
和:
GuardMalloc [Radiocent new try-1820]:VM 分配 68752 字节失败
GuardMalloc[Radiocent new try-1820]:显式陷入调试器!!!
Stations 数组非常大……大约有 60000 个字符串。