从位置类将坐标信息发送到ViewController

我正在尝试编写一个可以更新设备位置的应用程序。

我设置了GPS_Obtainer类,它将获取设备的位置。GPS_Obtainer类会将位置信息转发给视图控制器。

我尝试使用协议,但失败了。

最好的方法是什么?如何?

音系的

您可以选择使用所有这三个是它NotificationObserversProtocol发送位置更新,我证明协议的方式,请参见下文

首先,您可以Singleton为您的GPS_Obtainer班级创建一个如下所示。

GPS_Obtainer.h

#import "GPS_Obtainer.h"

#import <Foundation/Foundation.h>
#import <CoreLocation/CoreLocation.h>

@protocol GPS_ObtainerDelegate <NSObject>

-(void)locationDidUpdated:(CLLocation *)location;

@end

@interface GPS_Obtainer : NSObject

@property (nonatomic, strong) id<GPS_ObtainerDelegate> delegate;

+ (GPS_Obainer*)sharedSingleton;

@end

GPS_Obtainer.m

@interface GPS_Obtainer()<CLLocationManagerDelegate>

@property (nonatomic, strong) CLLocationManager* locationManager;

@end

@implementation GPS_Obtainer

- (id)init {
    self = [super init];

    if(self) {
        self.locationManager = [CLLocationManager new];
        [self.locationManager setDelegate:self];
        [self.locationManager startUpdatingLocation];
    }

    return self;
}

+ (GPS_Obtainer*)sharedSingleton {

    static GPS_Obtainer *sharedSingleton = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
       sharedSingleton = [GPS_Obtainer new];
    });
    return sharedSingleton;
}

#pragma mark - CLLocationManagerDelegate

- (void)locationManager:(CLLocationManager *)manager didFailWithError:(NSError *)error
{

}

- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{

      if(self.delegate && [self.delegate respondsToSelector:@selector(locationDidUpdated:)]){
            [self.delegate locationDidUpdated:newLocation];
      }

}

@end

然后,您只需要在ViewController中设置该类的委托即可,如下所示

ViewController.m

-(void)viewDidLoad{
     [[GPS_Obtainer sharedSingleton] setDelegate:self];
}

-(void)locationDidUpdated:(CLLocation *)location{
    //HERE you get the location updates
}

-(void)dealloc{
  [[GPS_Obtainer sharedSingleton] setDelegate:nil];
}

希望以上有帮助。

干杯。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将信息从IRC类发送到WinForm TextBox

来自分类Dev

OnLocationChange将坐标发送到Firebase

来自分类Dev

将数据发送到多个ViewController?

来自分类Dev

无法将坐标从带有mapKit的ViewController发送到带有委托的另一个viewController

来自分类Dev

从iOS在后台将位置坐标发送到服务器

来自分类Dev

为什么datanode将块位置信息发送到namenode?

来自分类Dev

将数据从类发送到Winform

来自分类Dev

将数据从类发送到Winform

来自分类Dev

将GPS坐标发送到服务器的服务

来自分类Dev

将坐标发送到Google App引擎

来自分类Dev

将进度从NSURLSession发送到ViewController [swift-iOS]

来自分类Dev

无法将消息发送到其他ViewController

来自分类Dev

将NSString的值发送到ViewController PopOver

来自分类Dev

将信息发送到Google Spreadsheets / Google Form

来自分类Dev

是否可以将信息从iPhone发送到Apple Watch?

来自分类Dev

GPS代表将信息发送到CCLayer

来自分类Dev

将信息JavaScript发送到Android(webview)

来自分类Dev

使用Ajax将信息发送到PHP脚本

来自分类Dev

将信息从服务器发送到android应用

来自分类Dev

是否可以将信息从iPhone发送到Apple Watch?

来自分类Dev

将下拉列表的信息发送到数据库

来自分类Dev

将JSON发送到Java帖子并显示信息

来自分类Dev

如何将账单信息发送到DocuSign?

来自分类Dev

如何将信息发送到文件?

来自分类Dev

将信用卡信息发送到节点

来自分类Dev

如何将输入信息从 androidstodio 发送到 Localdatabase

来自分类Dev

如何使用 tkinter 按钮将信息发送到定义

来自分类Dev

将位置更新发送到IntentService

来自分类Dev

将Google Maps标记位置发送到拖动的Flask

Related 相关文章

热门标签

归档