我是iPhone开发新手,我有一个EXC_BAD_ACCESS错误。错误EXC_BAD_ACCESS
在我的.h文件,我宣布:
NSString *myString;
在我的.m文件,我有两种方法:
1. CLLocationManager接口(无效)的LocationManager,当我做到这一点:
myString = [NSString stringWithFormat:@"%lf",loc.longitude];
NSLog(@"%@",myString); // it works
2.A(无效)sendPosition法:
NSLog(@"%@",myString); // EXC_BAD_ACCESS
你能帮我吗?
这是因为NSString是自动发布的,如果你想让它挂起,需要保留它。或者,你可以使它成为一个保留的属性,而不必调用retain(注意你仍然必须在dealloc中释放它) – jrtc27 2010-07-26 10:26:27
谢谢,它可以工作,但myString的值可能会改变。有了保留,价值永远是一样的。 – 2010-07-26 10:55:57
如果您的值可以更改,请使用可变字符串,然后更改该值。否则,释放它并在创建新值时再次设置它。说真的,看看我的答案,阅读规则(你需要了解他们),当你遇到这样的问题时,停下来思考。通常有一个简单的解决方案。 – jer 2010-07-26 11:07:06