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

发布于 2024-11-08 12:39:26 字数 900 浏览 0 评论 0原文

我是 obj-c 和 iOS 编程新手。 因此,在一个文件/模块中,我编写了 GPS+地图,在这个文件/模块中,我更新了我的地理位置。 在另一个文件/模块中,我有一个函数将第一个文件/模块中的地理位置作为 CLLocationCooperative2D 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' ?

I'am new in obj-c and iOS programming.
So in one file/module i have written GPS+map, in this file/module I updating my geolocation.
In another file/module i have function witch take geolocation form first file/module as CLLocationCoordinate2D var. There is small code part witch explane what I mean.
Someware in the GPS+map file is function:.

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

There is the geoloc. setter. In another file/module.h:.

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

And in another file/module.m:.

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

So how to send coordinates form 'didUpdateUserLocation' to 'ThereIsGeolocTakeAction' ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

清晰传感 2024-11-15 12:39:26

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

在地图文件中的 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);
  }

IBAction is used for hooking up a button in Interface Builder so when a user taps that button, it triggers a method call. You don't want that here. You just need a regular method.

In the map file, inside didUpdateUserLocation: implement this code:

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

In AnotherModuleGeolocTaker.m implement this method:

 -(void)ThereIsGeolocTakeAction:(CLLocationCoordinate2D)theNewLocation {
     NSLog(@"\n\nlatitude = %g\n\tlongitude = %g",
              theNewLocation.latitude,theNewLocation.longitude);
  }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文