ユーザーの位置とターゲットの位置の間の距離を表示するアプリを試しています。ユーザーの場所の didUpdateToLocation メソッドを取得し、配列に格納するつもりです。次に、それをテーブル ビュー デリゲート「cellForRowAtIndexPath」に入れて距離を計算し、テーブル セルに表示します。しかし、うまくいきません。以下の私のコードを見てください。誰でも助けることができますか?
-(void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation{
if (newLocation.horizontalAccuracy < 0) return;
NSTimeInterval locationAge = -[newLocation.timestamp timeIntervalSinceNow];
if (locationAge > 5.0) return;
if (currentLocation == nil || currentLocation.horizontalAccuracy > newLocation.horizontalAccuracy) {
self.currentLocation = newLocation;
// locationMeasurements is NSMutableArray to store currentLocation (CLLocation) information.
[locationMeasurements addObject:currentLocation];
[self.tableView reloadData];
}
}
}
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle
reuseIdentifier:CellIdentifier] autorelease];
}
CLLocation *location = [locationMeasurements objectAtIndex:indexPath.row];
return cell;
}
クラッシュし、コンソールの配列に何も表示されません (以下を参照)。ただし、この配列を 'didUpdateToLocation' に NSLog すると、正しく表示されます。
**** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayM objectAtIndex:]: index 0 beyond bounds for empty array'*
次に、cellForRowAtIndexPath で locationMeasurements (配列) を NSLog しようとします。
NSLog(@"locationMeasurements ===%@",[locationMeasurements description]);
いくつかのステートメントで空白の情報を表示し、後で正しい情報を表示します。下記参照。
locationMeasurements ===(
)
locationMeasurements ===(
)
locationMeasurements ===(
)
locationMeasurements ===(
)
locationMeasurements ===(
"<+37.33233141,-122.03121860> +/- 5.00m (speed 0.00 mps / course -1.00) "
)
locationMeasurements ===(
"<+37.33233141,-122.03121860> +/- 5.00m (speed 0.00 mps / course -1.00) "
)
locationMeasurements ===(
"<+37.33233141,-122.03121860> +/- 5.00m (speed 0.00 mps / course -1.00) "
)
locationMeasurements ===(
"<+37.33233141,-122.03121860> +/- 5.00m (speed 0.00 mps / course -1.00) "
)
誰かアドバイスをくれませんか?私は何をすべきか?
少し早いですがお礼を。