Apple のドキュメントでは、このメソッドを CoreLocation で使用して GPS データをプルする方法を示しています。
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
}
これは、GPS が更新されたことを通知するためのものです。newLocation には必要な GPS データが含まれていますが、このメソッドにステートメントを入れてプロパティに割り当てると、注意書きが書き込まれます。
latitude = [NSString stringWithFormat:@"%f", newLocation.coordinate.latitude];
NSLog(@"%@", latitude);
上記の NSLog をメソッドに入れると、正しい座標が表示されます。しかし、メソッドが終了するとデータが消えるようです。クラスのプロパティ「緯度」が割り当てられません。多分それは範囲の問題ですか?これから何も返すことができず、メソッドの外に newLocation が表示されません。誰かがこれを回避する方法を見つけましたか?
編集:私は円弧を使用しており、緯度プロパティは強力です。他の属性は必要ですか? プロパティをインポートするために使用している実装コードを次に示します。(緯度は LocationAwareness のプロパティです) これらの nslog は両方とも null を示します
#import "ViewController.h"
#import "LocationAwareness.h"
@interface ViewController ()
@end
@implementation ViewController
@synthesize location;
- (void)viewDidLoad
{
[super viewDidLoad];
self.location = [[LocationAwareness alloc] init];
NSLog(@"%@", location.latitude);
NSLog(@"%@", location.longitude);
}