IOS 定位 单例

?





1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

+ (SCLocationController *)sharedController

{

     static
SCLocationController *sharedController = nil;

     static
dispatch_once_t onceToken;

     dispatch_once(&onceToken, ^{

        sharedController = [[self
alloc]init];

  });

  return
sharedController;

}

- (id)init

{

     self
= [super
init];

     if
(self) {

        _locationManager = [[CLLocationManager alloc]init];

        _locationManager.delegate = self;

        _locationManager.desiredAccuracy = kCLLocationAccuracyBest;

        _locationManager.distanceFilter = 30; // Meters.

  }

  return
self;

}

#pragma mark - Location Manager

#pragma mark - CLLocationManagerDelegate

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

{

    [_locManager stopUpdatingLocation];

    CLGeocoder *reverseGeocoder=[[CLGeocoder alloc]  init];

    [reverseGeocoder reverseGeocodeLocation:newLocation completionHandler:^(NSArray
*array, NSError
*error)

     {

         CLPlacemark *placeMark = [array lastObject];

         if
(placeMark != nil)

         {

             state = [placeMark.addressDictionary objectForKey:@"State"]; 

             city = [placeMark.addressDictionary objectForKey:@"City"];                  

             subLocality = [placeMark.addressDictionary objectForKey:@"SubLocality"];

             

             if
(city.length >  0) {

                 NSLog(@"%@-%@-%@",state,city,subLocality);

             }

             else{

                 NSLog(@"%@-%@",state,subLocality);

             }

             

         }

 

     }];

}

  

IOS 定位 单例,码迷,mamicode.com

时间: 2024-12-19 10:02:04

IOS 定位 单例的相关文章

IOS多线程--单例

单例 iOS中,如何实现一个真正的单例 单例问题最担心的就是线程安全,因为它常常被多个控制器同时访问 1.保证allocWithZone:方法是线程安全的,当调用super方法的时候使用dispatch_once方法锁住 2.保证单例实现方法也使用dispatch_once方法锁住创建对象的过程 3.dispatch_once 被广泛用在单例,缓存等代码中,用来保证只执行一次 在单线程中没有意义,但是在多线程中,其低负载,高的可依赖性,接口简单等,赢得五星好评 static dispatch_o

iOS的单例UIApplication总结及一些常见方法

UIApplication是一个应用程序的象征并且是一个单例对象 方法:openURL(打电话,发短信) // NSURL 资源唯一路径的地址// 规范:    协议头://主机地址/资源路径// 网络资源: http://www.baidu.com/image/123.png// 本地资源: file:///user/desktop/image/321.png // 状态栏交给Application管理(在系统info.plist文件中添加下面这条命令)View controller-base

iOS:创建单例对象的两种方式

单例模式:创建单例对象的两种方式 方式一:iOS4版本之前 static SingleClassManager *singleManager = nil; +(SingleClassManager*)sharedManager { @synchronized(self)  //同步加锁,在多线程中使用,可以使线程安全 { if(singleManager == nil) { singleManager = [[SingleClassManager alloc]init]; } } return

iOS设计模式 - 单例

原理图 说明 1. 单例模式人人用过,严格的单例模式很少有人用过 2. 严格的单例模式指的是无法通过常规的 alloc init 方法来生成对象,派生出来的子类也不能产生出对象,而只能通过单例的方法获取到对象 源码 https://github.com/YouXianMing/SingletonPattern // // Singleton.h // SingletonPattern // // Created by YouXianMing on 15/8/6. // Copyright (c)

iOS之单例

今天在看多线程同步时,突然想到了单例的同步问题.自从dispatch_once出现后,我们创建单例非常简单且安全: 1 static dispatch_once_t pred; 2 static SingleObject *sharedObject = nil; 3 4 dispatch_once(&pred, ^{ 5 sharedObject = [[[self class] alloc] init]; 6 }); 7 return sharedObject; 苹果简洁的接口已经慢慢让我们忘

ios之单例类的创建实现与使用技巧总结

首先讲下单例类能够实现的功能,也是在项目中经常可以用到的.因为单例是全局哪里要用直接调用就行非常方便简单,一般我们可以用单例来作对用户信息的存储,其次单例可以做成购物车之类的页面等等.当然单例最大的优势个人感觉就是对数据的存储和读取非常方便,就可以解决页面之间传值困难的问题.简单讲下怎样用单例对数据传输吧,把需要的数据都定义成属性,当需要存储的时候直接调用存储就行,要用的时候把它调出使用就行了这里不做过多描述了. 下面用个简单地demo来详细介绍实现过程   (工程采用非ARC模式) xcode

iOS 创建单例的方法

在ios4之后出现了一种单例的写法: 首先创建一个继承于NSObject的类 在.h文件中声明一个类方法 + (InstallStatisticsClass *)shareInstance; 在.m中将这个方法 + (InstallStatisticsClass *)shareInstance { static InstallStatisticsClass *instance = nil; static dispatch_once_t str; dispatch_once (&str,^{ in

ios oc单例宏定义

#undef AS_SINGLETON #define AS_SINGLETON( __class ) \ - (__class *)sharedInstance; \ + (__class *)sharedInstance; #undef DEF_SINGLETON #define DEF_SINGLETON( __class ) \ - (__class *)sharedInstance \ { \ return [__class sharedInstance]; \ } \ + (__cl

iOS开发-单例GCD

+ (SingletonObject *)shareInstance; + (SingletonObject *)shareInstance { static SingletonObject *__singletion; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ __singletion=[[self alloc] init]; }); return __singletion; } static dispatch