Umb*_*rto 1 iphone objective-c
我会尽量让自己变得清晰.让我们从头开始.我有一个带有tableview的应用程序,其中包含一个距myLocation有距离的地方列表.现在,每当我在gps位置获得更新时,我都会运行以下代码
- (void)locationUpdate:(CLLocation *)location {
myLocation = location;
for (Trek * trek in list) {
CLLocation *loc = [[CLLocation alloc] initWithLatitude:[trek latitude_start] longitude:[trek longitude_start]];
double dis = [locationManager getDistance: loc];
[trek setDistance:dis];
[trek setDistanceUnit];
[loc release];
}
[self.tableView reloadData];
}
Run Code Online (Sandbox Code Playgroud)
现在这段代码[trek setDistanceUnit];调用
-(void) setDistanceUnit {
if (self.distance < 1000.0)
self.distanceString = [NSString stringWithFormat:@"%.0lf m", self.distance];
}
Run Code Online (Sandbox Code Playgroud)
现在,如果我只distanceString使用应用程序崩溃.现在我认为这可能与这些更新可能同时(并行)运行视图绘制单元格所需的访问这一事实有关.任何人有任何想法?我可以发布更多代码,如果有用,我只是不想过多发布这篇文章太久了.
我试着到处寻找,但到目前为止我找不到任何东西.
在此先感谢,翁贝托
PS现在应用程序正在运行,但我想了解发生了什么.
如果您distanceString是一个保留属性,则在不self设置崩溃的情况下分配它,因为您绕过了setter,并在不保留字符串的情况下分配字符串.因此,当字符串在发送到自动释放池时被释放时,您的应用程序崩溃了.
通过使用@synthesize和使用点符号(或setDistanceString:)来合成访问器,对象将为您保留字符串,以便它始终具有指向它的指针(直到它被释放).
| 归档时间: |
|
| 查看次数: |
185 次 |
| 最近记录: |