我有点不清楚在某些Objective C协议方法中作为参数传递的一些对象是在哪里创建的。让我们看一下下面的代码,它是更新对象位置的 CLLocationManagerDelegate 的协议方法之一:
- (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 对象提供给该方法。但是这样的对象是在哪里创建的呢?这一切似乎都发生在某处的黑匣子中,然后自动传递给方法......或者我错过了什么?