详解iPhone中在多线程下使用CLLocationManager

移动开发 iOS
本文主要介绍的是iPhone中在多线程下如何使用CLLocationManager,分别通过子线程和主线程中做了实验比较分析,来看内容。

详解iPhone中在多线程下使用CLLocationManager是本文要介绍的内容,主要是介绍在多线程下如何使用CLLocationManager,一起来看本文详细内容讲解。

如果是子线程中创建CLLocationManager,那么startUpdatingLocation后是无法定位的,任何代理函数都不会被调用,而且表面上还会有提示是否定位的MessageBox,一切看起来都正常,就是代理不会执行。

似乎定位的返回(调用代理)只能有主线程来调用,并且这个对象还必须是在主线程创建的。

做过以下实验:

1.子线程中:

  1. self.locationManager = [[CLLocationManager alloc] init] autorelease];  
  2. locationManager.delegate = self;  
  3. [locationManager startUpdatingLocation]; 

结果:不会有任何结果返回。

2.主线程中:

  1. childThread.locationManager = [CLLocationManager alloc] init];  
  2. [childThread.locationManager release];  
  3. childThreadchildThread.locationManager.delegate = childThread; 

在子线程中调用:

  1. [locationManager startUpdatingLocation]; 

结果:代理函数会执行,但是是由主线程来调用的。也就是子线程启动定位,主线程返回结果。

小结:详解iPhone中在多线程下使用CLLocationManager的内容介绍完了,希望本文对你有所帮助!

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-08-08 13:50:29

iPhone开发 NSOperatio 多线程

2011-08-31 16:30:19

Lua多线程

2011-07-21 11:12:58

iPhone 线程 多线程

2011-06-02 17:27:49

iphone 多线程

2023-11-28 13:52:00

Python多进程多线程

2011-07-08 16:43:46

iPhone Cocoa 多线程

2011-08-01 12:53:25

iPhone 多线程 线程

2024-01-07 17:29:10

编程语言线程Rust

2011-06-07 17:35:39

iphone 多线程

2011-10-31 15:59:56

SQLiteiPhoneiOS

2011-07-21 15:20:31

iPhone SDK 多线程

2011-08-09 14:24:18

iPhone多线程线程

2011-08-12 10:09:23

iPhone开发多线程

2009-03-24 08:56:23

数据同步多线程Java

2023-12-14 15:05:08

volatile代码C++

2013-08-21 16:17:09

iPhone多线程

2011-06-30 18:03:58

QT 多线程 服务器

2022-05-20 10:20:17

Spring事务MyBatis

2011-08-09 13:34:53

SubversionXCodeMac

2014-07-21 10:03:56

点赞
收藏

51CTO技术栈公众号