如何将CLLocationCoordinate2D var发送到另一个文件?

时间:2011-05-20 14:20:14

标签: objective-c xcode ios geolocation

我是obj-c和iOS编程的新手。 所以在一个文件/模块中我写了GPS + map,在这个文件/模块中我更新了我的地理位置。 在另一个文件/模块中我有功能,将第一个文件/模块的地理定位作为CLLocationCoordinate2D var。有一个小代码部分女巫解释我的意思。 GPS +地图文件中的某些软件具有以下功能:。

-(void)mapView:(MKMapView *)mv didUpdateUserLocation:(MKUserLocation *)userLocation {
  if (AnotherModuleGeolocTaker!=nil) 
     [[AnotherModuleGeolocTaker getInstance] setLocation:[userLocation coordinate]];
...

有geoloc。二传手。在另一个文件/ module.h中:。

...
@property (nonatomic, assign) CLLocationCoordinate2D location;
...

在另一个文件/ module.m中:。

...
@synthesize location;
...
- (IBAction)ThereIsGeolocTakeAction:(id)sender {
    NSLog(@"\n\nlatitude = %g\n\tlongitude = %g",location.latitude,location.longitude);
...

那么如何将'didUpdateUserLocation'的坐标发送到'ThereIsGeolocTakeAction'?

1 个答案:

答案 0 :(得分:0)

IBAction用于连接Interface Builder中的按钮,因此当用户点击该按钮时,它会触发方法调用。你不想在这里。你只需要一个常规的方法。

在map文件中,在didUpdateUserLocation中:实现此代码:

if (AnotherModuleGeolocTaker!=nil) {
    [[AnotherModuleGeolocTaker getInstance]
         ThereIsGeolocTakeAction:[userLocation coordinate]];
 }

在AnotherModuleGeolocTaker.m中实现此方法:

 -(void)ThereIsGeolocTakeAction:(CLLocationCoordinate2D)theNewLocation {
     NSLog(@"\n\nlatitude = %g\n\tlongitude = %g",
              theNewLocation.latitude,theNewLocation.longitude);
  }