一部のObjectiveCプロトコルメソッドで引数として渡されるオブジェクトの一部がどこで作成されているのか、少しわかりません。たとえば、オブジェクトの場所を更新するCLLocationManagerDelegateのプロトコルメソッドの1つである以下のコードを見てみましょう。
- (void)locationManager:(CLLocationManager *)manager
didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
NSLog(@"%@", newLocation);
NSTimeInterval t = [[newLocation timestamp] timeIntervalSinceNow];
if (t < -180) {
return;
}
[self foundLocation:newLocation];
}
ここでの質問は、newLocationについてです。Appleのドキュメントによると、newLocationはCLLocationManagerオブジェクトによってメソッドに提供されます。しかし、このようなオブジェクトはどこで作成されますか?それはすべてどこかのブラックボックスで発生し、その後自動的にメソッドに渡されるようです...または何かが足りませんか?