iOS7应用开发13:应用类UIApplication、网络活动指示器、地图

简介: 1、应用类UIApplication: UIApplication类为应用提供了一个共享的实例,可以提供一些全局信息,其核心作用是提供了iOS程序运行期间的控制和协作工作。

1、应用类UIApplication:

UIApplication类为应用提供了一个共享的实例,可以提供一些全局信息,其核心作用是提供了iOS程序运行期间的控制和协作工作应用在运行期必须且只能有一个UIApplication(或者其子类)的实例。调用方法如下:

UIApplicaiton *myApplication = [UIApplication sharedApplication];

UIApplication的主要任务是处理用户相关事件,该类会生成一个任务队列存放各种用户事件并逐个进行处理。同时该类还负责将UIControl空间传递给它的消息传递给相应的目标对象。此外,UIApplication类还维护一个当前应用中所有打开的UIWindow窗口的列表,因此可以获取应用的每一个UIView对象。每一个应用对象通常都会有其代理对象,该对象将负责处理应用运行时的一些重要事件,如启动应用、低内存警告、退出应用等,并作出适当的响应。

每一个应用启动时,都将调用UIApplicationMain函数,该函数的一个重要作用就是生成一个UIApplication单例实例,在其后的程序中可以通过上述代码获取此实例的指针。


2、网络活动指示器:

这是UIApplication的一个bool类型的property,其定义如下所示:

@property(nonatomic, getter=isNetworkActivityIndicatorVisible) BOOL networkActivityIndicatorVisible
如果设为YES,则状态栏会出现网络活动指示,设为NO则将其关闭。

该属性的作用域为全局作用域,所有线程都可以访问。需要考虑解决该属性的线程间冲突问题。

更多与UIApplication相关的内容可以参考官方文档:https://developer.apple.com/library/ios/documentation/UIKit/Reference/UIApplication_Class/Reference/Reference.html#//apple_ref/doc/uid/TP40006728-CH3-DontLinkElementID_6


3、地图、Core Location框架:

该框架用于处理位置和方位信息,没有UI界面。通过该framework提供的类和协议,可以配置并处理位置和方位事件的传递。

该框架的基类为:CLLocation,其含有的属性有:coordinate, altitude, horizontal/verticalAccuracy, timestamp, speed, course。一个CLLocation的对象代表一个由CLLocationManagers生成的位置信息,该对象包含了当前设备的位置坐标、海拔高度、测量精度以及测量时间,同时在设备移动时还会包含移动目标方位和速度。

获取CLLocation的方法:通过CLLocationManager。CLLocationManager可以作为生成位置信息的工具,使用一个CLLocationManager的实例控制传递位置和方向信息,以及控制什么时候传递事件。同时还可以获取最近的位置和方向信息。

CLLocationManager的对象支持的与方位有关的活动有:

1、以某个预设定的精度检测当前设备的位置移动;

2、对iOS,可以在指南针中报告当前设备指向方位的变化;

3、对感兴趣区间的监视,以及在设备进入该区间时发送相关事件;

4、在应用转入后台运行时推迟更新方位状态;

5、向附近beacons报告范围;

在实际应用中,用户可以设置禁止应用访问位置信息(如禁用GPS等)。在应用启动时,Core Location框架提示用户是否允许访问位置信息。如果禁止,则在调用CLLocationManager的代理方法时会返回一个错误值。利用authorizationStatus方法可以查看应用的完整授权状态。

在使用CLLocationManager 的功能时,需要做的有:

1、在启动服务之前,检测相应设备是否存在,若不存在则放弃操作;

2、创建一个CLLocationManager 实例;

3、为delegate属性指定一个目标对象,该对象必须符合<CLLocationManagerDelegate>协议;

4、设置其他相关的属性;

5、调用响应的方法开始发送相关事件;

目录
相关文章
|
1月前
|
机器学习/深度学习 自然语言处理 数据处理
大模型开发:描述长短期记忆网络(LSTM)和它们在序列数据上的应用。
LSTM,一种RNN变体,设计用于解决RNN处理长期依赖的难题。其核心在于门控机制(输入、遗忘、输出门)和长期记忆单元(细胞状态),能有效捕捉序列数据的长期依赖,广泛应用于语言模型、机器翻译等领域。然而,LSTM也存在计算复杂度高、解释性差和数据依赖性强等问题,需要通过优化和增强策略来改进。
|
2天前
|
移动开发 Java Android开发
构建高效Android应用:采用Kotlin协程优化网络请求
【4月更文挑战第24天】 在移动开发领域,尤其是对于Android平台而言,网络请求是一个不可或缺的功能。然而,随着用户对应用响应速度和稳定性要求的不断提高,传统的异步处理方式如回调地狱和RxJava已逐渐显示出局限性。本文将探讨如何利用Kotlin协程来简化异步代码,提升网络请求的效率和可读性。我们将深入分析协程的原理,并通过一个实际案例展示如何在Android应用中集成和优化网络请求。
|
5天前
|
存储 编解码 JSON
利用SwiftUI构建高效iOS天气应用
【4月更文挑战第21天】 在本文中,我们将深入探讨如何运用SwiftUI框架打造一个响应迅速且用户友好的iOS天气应用程序。我们将重点放在利用SwiftUI的声明式语法简化界面开发,并通过结合Core Location和Networking APIs实现实时天气数据的获取与展示。文章将详细阐述整个开发过程,包括API集成、数据模型设计、用户界面布局以及动态适配不同屏幕尺寸的策略。
|
8天前
|
存储 监控 安全
网络安全与信息安全:防范漏洞、应用加密、提升意识
【4月更文挑战第18天】 在数字化时代,网络安全与信息安全保障已成为维护国家安全、企业利益和个人隐私的关键。本文深入探讨网络安全的多面性,包括识别和防御网络漏洞、应用加密技术保护数据以及提升全民网络安全意识的重要性。通过对这些关键领域的分析,文章旨在为读者提供实用的策略和建议,以增强其网络环境的安全防护能力。
10 0
|
9天前
|
数据采集 机器学习/深度学习 数据挖掘
网络数据处理中的NumPy应用实战
【4月更文挑战第17天】本文介绍了NumPy在网络数据处理中的应用,包括数据预处理、流量分析和模式识别。通过使用NumPy进行数据清洗、格式化和聚合,以及处理时间序列数据和计算统计指标,可以有效进行流量分析和异常检测。此外,NumPy还支持相关性分析、周期性检测和聚类分析,助力模式识别。作为强大的科学计算库,NumPy在处理日益增长的网络数据中发挥着不可或缺的作用。
|
16天前
|
JavaScript Java 测试技术
基于Java的网络类课程思政学习系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的网络类课程思政学习系统的设计与实现(源码+lw+部署文档+讲解等)
30 0
基于Java的网络类课程思政学习系统的设计与实现(源码+lw+部署文档+讲解等)
|
17天前
|
传感器 监控 安全
|
17天前
|
安全 SDN 数据中心
|
17天前
|
安全 网络安全 网络虚拟化
虚拟网络设备与网络安全:深入分析与实践应用
在数字化时代📲,网络安全🔒成为了企业和个人防御体系中不可或缺的一部分。随着网络攻击的日益复杂和频繁🔥,传统的物理网络安全措施已经无法满足快速发展的需求。虚拟网络设备🖧,作为网络架构中的重要组成部分,通过提供灵活的配置和强大的隔离能力🛡️,为网络安全提供了新的保障。本文将从多个维度深入分析虚拟网络设备是如何保障网络安全的,以及它们的实际意义和应用场景。
|
1月前
|
机器学习/深度学习 PyTorch 算法框架/工具
卷积神经元网络中常用卷积核理解及基于Pytorch的实例应用(附完整代码)
卷积神经元网络中常用卷积核理解及基于Pytorch的实例应用(附完整代码)
20 0