AFNetworking を使用して特定の場所に投稿を作成する、レールに支えられた iPhone アプリを構築しています。したがって、投稿モデルには、クライアントの現在の場所を入力する必要がある緯度/経度パラメーターがあります。この時点で、投稿を行うことができますが、緯度/経度は null として表示されます。私の (save:) メソッドでは、場所が見つかったかどうかを確認する条件を渡します。これが失敗の原因です。つまり、「場所がありません」がログに記録されます。
- (void)save:(id)sender {
[self getLocation];
NSArray *locations;
CLLocation *location = [locations objectAtIndex:0];
Post *post = [[Post alloc] init];
post.content = self.contentTextView.text;
post.photoData = UIImagePNGRepresentation(self.imageView.image);
[self.view endEditing:YES];
ProgressView *progressView = [ProgressView presentInWindow:self.view.window];
if (location) {
[post savePostAtLocation:location withBlock:^(CGFloat progress) {
[progressView setProgress:progress];
} completion:^(BOOL success, NSError *error) {
[progressView dismiss];
if (success) {
[self.navigationController popViewControllerAnimated:YES];
} else {
NSLog(@"ERROR: %@", error);
}
}];
} else {
NSLog(@"No Location");
}
}
私もそのようにlocationManagerを実装しようとしました
-(void)locationManager:(CLLocationManager *)manager
didUpdateLocations:(NSArray *)locations {
[self getLocation];
}
-(CLLocation *) getLocation{
CLLocationManager * locationManager = [[CLLocationManager alloc] init];
locationManager.delegate = self;
self.locationManager.desiredAccuracy = kCLLocationAccuracyHundredMeters;
self.locationManager.distanceFilter = 80.0f;
[locationManager startUpdatingLocation];
CLLocation * location = [locationManager location];
return location;
}
理想的には、CLLocationManagerDelegate に savePostAtlocation を実装して、次のように location 配列を渡すことができると思います。
- (void)locationManager:(CLLocationManager *)manager
didUpdateLocations:(NSArray *)locations
{
CLLocation *location = [locations objectAtIndex:0 /* firstObject */];
if (location) {
[Post createPostAtLocation:location...
しかし、投稿をonSaveで作成したいので、場所を特定しようとしていますが、いくつかの問題が発生しています.現在の場所を適切に取得して辞書に渡すにはどうすればよいですか? これに関するアドバイスは大歓迎です。ありがとう!