これは私のコードです。これはviewDidLoad
メソッドで入力しました。私はチュートリアルとソースコードを、次の午前 は、私はこれらすべてを定義したCorelocAPIでhereアプリケーションにGPSを組み込む - 動作しない
corelocation = [[CorelocAPI alloc] init];
corelocation.delegate = self;
[corelocation.locMgr startUpdatingLocation];
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
{
NSLog (@"Failed !"); // This never gets executed. For more details why this is happening read below
}
- (void)locationUpdate:(CLLocation *)newLocation {
NSLog(@"location - %@",[NSString stringWithFormat:@"%f",self.lat]);
}
を見つけることができます(これは私のビューコントローラです)。
- (id)init {
self = [super init];
if(self != nil) {
self.locMgr = [[[CLLocationManager alloc] init] autorelease]; // Create new instance of locMgr
self.locMgr.delegate = self; // Set the delegate as self.
}
return self;
}
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation {
if([self.delegate conformsToProtocol:@protocol(CoreLocationControllerDelegate)]) {
[self.delegate locationUpdate:newLocation];
}
}
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error {
if([self.delegate conformsToProtocol:@protocol(CoreLocationControllerDelegate)]) {
[self.delegate locationError:error];
}
}
それはdidFailWithError
CorelocAPI
クラスのメソッド、およびないview controllers
didFailWithError
メソッドを実行するときにエラーが発生したときに私が午前の問題があります。したがって、viewController
クラスのメソッドではNSLog
を実行することはありません。
viewController
クラスのdidFailWithError
メソッドを実行するようにコードを変更するにはどうすればよいですか(エラーが発生した場合)?あなたが混ざっデリゲートを取得しているようなあなたのビューコントローラ誤差法が間違っている
私のUIViewCOntrollerに 'locationError:(NSError *)error'を追加した後でも、エラーがあるときにこのブロックを実行しません – Illep
他のことを考えてください:didFailWithErrorは呼び出されませんCorelocAPI、またはビューコントローラがデリゲートとして宣言されていないため、conformsToProtocolチェックに失敗しています – wattson12