我正在设置一个带有一些MKAnnotation的地图。当我将它们添加到地图时,我收到此消息:
ENTAnottation类的实例0xbe62850已取消分配,而键值观察者仍在其中注册。观察信息被泄露,甚至可能被错误地附加到其他物体上。在NSKVODeallocateBreak上设置断点以在调试器中停止。这是目前的观察信息: ( 上下文:0x0,属性:0xbe66b30>
如果我没有弄错的话,这意味着一个物体在他们的观察者还活着时已被解除分配。我怎么知道观察员呢?而且,即使我发现它们......是不是明确禁止使用ARC进行解除分配?如果那是真的,我就无法解除他们......所以......我该怎么办?
谢谢。
------- ------ EDIT
根据要求,我发布了我的代码。我打电话给一个网站,它返回一个JSON,其中包含我需要设置我的注释的值:
- (void)requestFinished:(ASIHTTPRequest *)request
{
responseString = [request responseString];
id jsonObject = [responseString objectFromJSONString];
NSLog(@"From the JSON: %@", responseString);
NSMutableArray *lat = [jsonObject valueForKeyPath:@"latitud"];
NSMutableArray *lon = [jsonObject valueForKeyPath:@"longitud"];
NSMutableArray *azafatas = [jsonObject valueForKeyPath:@"azafata"];
NSMutableArray *usernames = [jsonObject valueForKeyPath:@"username"];
NSMutableArray *mapazafatas=[[NSMutableArray alloc]init];
for(int i=0;i<[lat count]; i++)
{
ENTAnottation *azafata=[[ENTAnottation alloc]init];
double latidouble=[[lat objectAtIndex:i]doubleValue];
double longdouble=[[lon objectAtIndex:i]doubleValue];
CLLocationDegrees lati=latidouble;
CLLocationDegrees longi=longdouble;
CLLocationCoordinate2D coords=CLLocationCoordinate2DMake(lati, longi);
NSString *nombre=[azafatas objectAtIndex:i];
NSString *email=[usernames objectAtIndex:i];
azafata.coordinate=coords;
azafata.title=nombre;
azafata.username=email;
[mapazafatas addObject:azafata];
//[mapa addAnnotation:azafata];
}
for (int i=0;i<[mapazafatas count];i++)
{
[mapa addAnnotation:[mapazafatas objectAtIndex:i]];
}
}
之后,应用程序崩溃了,尽管它没有任何问题地通过我的代码。
答案 0 :(得分:0)
解决。显然,如果你传递了一对不可能的坐标,它会向你的脸部抛出非常清晰,不可能混淆任何人的错误信息。可惜我......