私はBig Nerd RanchのiOSプログラミングの第2版を使って作業しています。第4章チャレンジ:見出しに来ました。この演習では、私が混乱していることを示唆しています。私は私がする必要がないと思うことをする必要があると言います。この演習の私の解決策は簡単すぎるようです。ヒント?
この時点まで、本書ではCoreLocationを例にして、委任の概念を説明しました。アプリケーションデリゲートでは、CLLocationManagerインスタンス変数を追加し、デリゲートをアプリケーションデリゲートに設定しました。
- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation
{
NSLog(@"%@", newLocation);
}
- (void)locationManager:(CLLocationManager *)manager
didFailWithError:(NSError *)error
{
NSLog(@"Could not find location: %@", error);
}
オクラホマので、章では、これまでのすべてを通して私を歩いていて、すべての作品:以下を参照してください:次のように
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
locationManager = [[CLLocationManager alloc] init];
[locationManager setDelegate:self];
[locationManager setDistanceFilter:kCLDistanceFilterNone];
[locationManager setDesiredAccuracy:kCLLocationAccuracyBest];
[locationManager startUpdatingLocation];
[self.window makeKeyAndVisible];
return YES;
}
を私はまた、CLLocationManagerための2つのデリゲートメソッドを実装しましたうまく。今、運動が来る:
「委任を使用して、CLLocationManager から見出し情報を取得し、コンソールにそれを印刷(ヒント:あなたは少なくとも一つのデリゲートメソッドを実装しに別のメッセージを送信する必要があります ロケーションマネージャー) "
ここで私は混乱しています。まず最初に、CLLocationManagerのドキュメントを読んだあと、私がすでに行った2つ以外のデリゲートメソッドは実装されていないように見えます。だから、ヒントが参照できる他のデリゲートメソッドがわからない。私がいないかのようにだから、それは私には思える
- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation
fromLocation:(CLLocation *)oldLocation
{
NSLog(@"%@", newLocation);
// Updated code below
CLLocationDirection heading = [newLocation course];
NSLog(@"Heading: %f", heading);
}
:didUpdateToLocation::fromLocation:そうのようなすべての
第二に、私が単にlocationManagerの実装を更新することにより、運動を解決できるかのように思えます実際、ロケーションマネージャにそれ以上のメッセージを送信する必要があります(ただし、newLocationにゲッターメッセージを送信する必要がありますが、CLLocationManagerではなくCLLocationです)。
私は明らかに何かを誤解しています。私は解決策を探しているわけではありません---私はこれをうまくやりたいのですが、私が誤解していることについてのヒントを非常に感謝しています。前もって感謝します!
をnewHeading(CLHeading *)これは、Xcodeの4の私のコピーは唯一のMac OS X 10.6コアライブラリのマニュアルを持っていないことが判明iOS 4.3ライブラリドキュメント。これはなぜ "見出し"へのすべての参照が欠けていたのかを説明し、適切な委任方法を見つけることができませんでした。私は適切なドキュメントをダウンロードしました。ドキュメントが完成したことを当然のこととして理解すると、何が起こるのか分かります。答えたすべての人に感謝します! –