【发布时间】:2012-08-14 12:52:54
【问题描述】:
总新手 Iphone/Obj。 C题:
我在 Location.h 中有一个名为 Location 的类,我声明:
@interface Location : NSObject
{
NSString *lat;
NSString *lon;
}
在我的 Location.m 中,我必须使用方法:
-(void)setLatLon:(NSString*)lati:(NSString*)longi
{
NSLog(@"called setLatLon");
lat = lati;
lon = longi;
}
我从 LocationManager 调用位置更新。现在,当我尝试使用
将其作为 JSON 发送出去时-(void)sendLocation
{
NSDictionary *sendData = [NSDictionary dictionaryWithObjectsAndKeys:
imei, @"imei",
lat, @"lat",
lon, @"lon",
nil];
...}
我得到这个错误:
*** -[CFString retain]: message sent to deallocated instance 0xc05b5d0
所以 lat & lon 似乎被释放了。我怎样才能防止这种情况发生,或者我在这里实施了一个完全愚蠢的“设计”?
【问题讨论】:
-
imei这个变量是什么?我在您的代码中的其他任何地方都没有看到它。
-
对你的字符串对象使用
retain.. -
你读过任何关于 Objective-C 存储管理的文章吗? (而且,如果您是初学者,为什么要从非 ARC 开始,而 ARC 将在另一年成为全部?)
-
这不是你在 Objective-C 中命名方法的方式...
标签: iphone objective-c dealloc