为什么在这里会出现“EXC_BAD_ACCESS”. 上面并没有release ArrLat 啊。。求解 本帖最后由 zzxap 于 2011-08-19 17:39:52 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 有可能是你这ArrLat 玩意NULL了 -(void)DoAddAnnotation:(NSArray *)ArrLat longitude:(NSArray *)ArrLng address:(NSArray *)ArrAddress title:(NSArray *)ArrName{ NSLog(@"lat:%@",ArrLat); NSLog(@"lng:%@",ArrLng); NSLog(@"address:%@",ArrAddress); NSLog(@"naem:%@",ArrName); 这里打印出来还有值,不是null的 int num=[ArrLat count]; //为什么在这里会出现“EXC_BAD_ACCESS”. 上面并没有release ArrLat 啊。。求解 } [dic objectForKey:@"lat"]返回的是什么?如果是数组,不要用initWithObjects,用initWithArray试试。 建议在int num=[ArrLat count];之前输出一下ArrLat的retainCount看看是不是计数为0。而且在调用之前在if判断的时候是没有问题的:if ([ArrLat count]>0&&[ArrLng count]>0&&[ArrAddress count]>0&&[ArrName count]>0) { [self DoAddAnnotation:ArrLat longitude:ArrLng address:ArrAddress title:ArrName ];}理论上讲你的代码是不应该有问题的。建议把所有代码贴出来看一下,或者自己在调试的时候看一下在进入方法之前和之后变量的对象是否相同。 ArrLat 啊,参数最好改其它的名字。不然 int num=[ArrLat count]; 会有一个警告 貌似是这样的:NSArray *ArrLat=[[NSArray alloc] initWithObjects [dic objectForKey:@"lat"],nil] ⋯⋯这么改试试:NSMutableArray *ArrLat= [[NSMutableArray alloc] initWithCapacity:20];[ArrLat addObject:@"lat"];我怀疑 dic 这个对象被强制释放了⋯⋯ xcode代码提示 如何发布企业内部使用的iphone应用程序以及如何实现在线更新版本? 游戏做ipad和iphone通用版本 精灵坐标怎么加载~ 关于iTunesMobileDevice接口问题 windows下怎么上传iphone应用到商店 O-C中如何在父类中定义便利构造器? IOS 自动跳转到设置界面 推荐:ChatSecure一个完整iOS版xmpp app开源项目 64位架构找不到 各位碰到这种情况么 ios 调用webserver 接口 cocos2d如何删除本层 ipad系统,代码里如何更改文件关联
{
NSLog(@"lat:%@",ArrLat);
NSLog(@"lng:%@",ArrLng);
NSLog(@"address:%@",ArrAddress);
NSLog(@"naem:%@",ArrName);
这里打印出来还有值,不是null的
int num=[ArrLat count]; //为什么在这里会出现“EXC_BAD_ACCESS”. 上面并没有release ArrLat 啊。。求解
}
而且在调用之前在if判断的时候是没有问题的:
if ([ArrLat count]>0
&&[ArrLng count]>0&&[ArrAddress count]>0&&[ArrName count]>0)
{
[self DoAddAnnotation:ArrLat longitude:ArrLng address:ArrAddress title:ArrName ];
}
理论上讲你的代码是不应该有问题的。
建议把所有代码贴出来看一下,或者自己在调试的时候看一下在进入方法之前和之后变量的对象是否相同。
NSArray *ArrLat=[[NSArray alloc] initWithObjects [dic objectForKey:@"lat"],nil] ⋯⋯
这么改试试:
NSMutableArray *ArrLat= [[NSMutableArray alloc] initWithCapacity:20];
[ArrLat addObject:@"lat"];我怀疑 dic 这个对象被强制释放了⋯⋯