【读书笔记】iOS-iOS定位】的更多相关文章

Bonjour就是这样一种技术:设备可以通过它轻松探测并连接到相同网络中的其他设备,整个过程只需要很少的用户参与或是根本就不需要用户参与.该框架提供了众多适合于移动的使用场景,如基于网络的游戏,设备间的文件共享,甚至是家庭自动化. 一,zeroconf概览. 1,寻址 2,解析 3,探测 二,Bonjour概览 1,发布服务 2,浏览服务 3,解析服务 4,与服务进行通信 三,实现基于Bonjour的应用 1,员工应用 2,顾客应用 四,总结 Bonjour是一项非常棒的技术,可以实现自组织网络…
Apple的Game Kit框架可以实现没有网络状况下的设备与设备之间的通信,这包括没有蜂窝服务,无法访问Wi-Fi基础设施以及无法访问局域网或Internet等情况.比如在丛林深处,高速公路上或是建筑物的地下室等. 一,Game Kit基础 除了底层的网络通信特性外,Game Kit还包含了一些特定于游戏的技术,比如成就,排行榜和比赛等. 蓝牙虽然具有不依赖于网络基础设施的独特优势,不过也有一些较大的缺陷.32英尺的最大接接范围比Wi-Fi网络小太多了,而后者可以跨越多个访问点来覆盖更大范围.…
一,URL方案 URL方案有3个主要用途:根据设备上其他应用的存在与否调整逻辑,切换到其他应用以及响应打开你的应用的其他应用.你还可以通过URL方案从某个站点或是在基于Web的认证流程结束是打开应用. 1,实现自定义的URL方案. 2,感知其它应用的存在. 3,高级通信. 1)base64编码,专门用于将二进制数据表示为ASCII文本字符串.可以使用一个标准化的转换表格将二进制数据的每6位编码为一个字符. 2)要想创建图像数据字符串,需要使用之前介绍的3个步骤.序列化图片,使用base64对其进…
一,本地通知 本地通知有64位的最大限制.虽然,你依然可以调度通知,不过到到达的通知数被限定为接近64个,并且按照fireDate的顺序排序,系统会忽略掉其余的通知.这意味着如果现在有64个调用的本地通知,那么在调用另一个通知会丢弃掉fireDate距当前日期最远的那个通知.循环通知会被当作单个通知,因为它们会自动被系统重新调度.如果超出这个限制,就应该检查一下该如何吸引用户,看看本地通知是否为正确的方式. 二,远程通知 APN负载是JSON对象,并且被严格限制为256字节.需要确保负载不会超过…
一,观测网络流量. 观测网络流量的行为叫做嗅探或数据包分析. 1,嗅探硬件. 从iOS模拟器捕获数据包不需要做特别的硬件或网络配置.如果需要捕获这些数据包,那么可以使用嗅探软件来监听回送设备或是用于连接网络的接口. 2,嗅探软件. OS X自带命令行数据包嗅探器topdump,它是OS X中大多数其他嗅探器的根基. 1)使用tcpdump进行捕获. 2)使用Wireshark进行捕获. 二,操作网络流量 1,配置Charles 2,HTTP断点. 3,重写规则. 三,模拟实现的网络状况. 网络数…
在iOS上,有一个库叫做Core Foundation networking或CFNetwork,它是对原始Socket的轻量级封装,不过它很快对于大多数常见场景来说变得非常笨重了.最后,添加了另一层(NSStream)来封装CFNetwork,并且作为最基础的Objective-C网络API.大家更熟悉的类(比如NSURLConnection与UIWebView)都是非常易于使用的,而且能够通过很少的代码完成很多事情,这都是由于这些底层库所提供的坚实基础而实现的. 一,BSD Socket A…
一,度量网络性能 1,网络带宽 用于描述无线网络性能的最常见度量指标就是带宽.在数字无线通信中,网络带宽可以描述为两个端点之间的通信通道每秒钟可以传输的位数.现代无线网络所能提供的理论带宽是很高的.不过请记住,运营商与网络设备提供商引用的带宽数字常常是该项技术的理论最大值,网络设备使用的实际带宽可能与这个最大值之间存在很大的偏差. 2,网络延迟. 度量网络性能的第2个因素是网络延迟,指的是网络包在两个端点间一次往返所需的时间.无线运营商很少会提到网络的延迟数据,不过延迟却会对应用的实际性能造成很…
一,验证服务器通信. 二,HTTP认证. 手机银行应用有两种认证模式:标准验证与快速验证.标准验证只是提示用户输入用户名与密码,而快速验证则让用户注册设备,然后使用PIN进行验证,每次验证时无需用户名和密码.要想确保快速认证的安全性,如果用户选择在给定的认证请求中注册设备,那么服务器响应就需要包含一个额外的属性,即用户的证书.应用会存储这个证书,并在随后启动时检查,从而确定应该显示哪个认证视图. 1,HTTPBasic,HTTP Digest与NTLM认证. 2,客户端证书认证. 三, 使用哈希…
一,在接口契约中处理错误. 二,错误状态可能不正确. 设备模糊地确认操作是崇拜失败的.比如,移动应用发出HTTP请求以在两个账户间转账.请求被银行系统接收并正确地处理:然而,由于网络失败应答却丢失了,NSURLConnection报告超时.超时发生了,但却是在转账请求成功之后发生的.如果重试该操作,就会导致重复转账,可能会造成用户透支. 三,验证负载. JSON和XML就具备了验证机制的负载格式,不过,以逗号分隔的值文件与HTML就没有这种机制. 四,分离错误与正常的业务状况. 五,总是检查HT…
一,操作系统错误. iOS人机界面指南中,Apple建议不要过度使用AlertViews,因为这会破坏设备的使用感受. 操作系统错误: 1,没有网络. 2,无法路由到目标主机. 3,没用应和监听目标端口. 4,无法解析目标主机名. 二,HTTP错误. 404错误是一种常见的HTTP错误,表示找不到URL指定的资源. 一共有5类HTTP错误: 1,信息性质的100级错误. 2,成功的200级错误. 3,重定向需要的300级错误. 4,客户端错误400级别. 5,下游错误500级别. 三,应用错误.…
考虑一个字节是如何从设备发往运程服务器以及如何从远程服务器将这个字节接收到设备,这个过程只需要几百毫秒时间,不过确要求网络设备都能正常工作才行.设备网络和网络互联的复杂性导致了分层网络的产生.分层网络将这种复杂环境划分成了更加易于管理的模块.虽然这对程序员很有帮助,不过当数据在各个层之间流动时可能会产生之前提到的网络错误. 参考资料:<iOS网络高级编程-iPhone和iPad的企业应用开发>…
Web Service可以通过多种格式返回结构化数据, 不过大多数时候使用的是XML与JSON.也可以让应用只接收HTML结构的数据.实现了这些Web Service或是接收HTML文档的应用必须能解释这种结构化数据并将其转换为对于应用上下文有意义的对象. 一,XML 使用原生解析库的另一个考虑因素就是它们是由Apple发布并提供支持的.这意味着它们会针对iOS操作系统未来的每次发布都进行完全的测试以确保向后兼容性.在评估应用中到底该使用哪个解析器时,这些都是要考虑的因素. 二,JSON 从iO…
负载指的是在服务的请求响应事务中交换的数据.常见的负载格式包括XML,JSON与HTML. 进入与发出的负载数据存在很多形式与大小.比如,有些开发者会使用原生的字符串或是以分隔符分开的数据与Web Service进行通信.这么做虽然简单,不过技术上却不具备可扩展性,难以处理复杂的数据结构,可能会导致很多问题. 一,XML XML是一种标记语言,用于编码和组织数据. 二,JSON JSON是一种用于交换格式化信息的轻量级数据格式. JSON支持的数据类型以及与之关联的格式规则: 1,数字:无双引号…
协议指的是在与其它系统交换结构化信息时所要遵循的一套格式,过程与规则.此外,协议定义了在传输过程中所要使用的数据格式.这样,接收系统就能正确地解释结构化信息并做出正应的回应. 1,简单对象访问协议. 简单对象访问协议(SOAP)是个轻量级协议,用于通过可扩展标记语言实现系统间的结构化数据交换.SOAP消息构成了Web Service栈的基础,很多企业建立的服务层都以SOAP作为面向服务架构的基石,可以服务于防火墙内外的客户端. 2,表述性状态转移. 表述性状态转移(REST)是由Roy Fiel…
Cookie是HTTP协议在首个版本之后加入的一个重要组件.它向服务器提供了追踪会话状态的能力,同时又无须维持客户端与服务器之间的连接.在浏览器客户端,Cookie值是由服务器通过请求提供的,,然后被放到随后的请求中.由于设计Cookie的目的是追踪会话状态,因此它们通常会非常小,基本上是几十到几百个字节. 参考资料:<iOS网络高级编程-iPhone和iPad的企业应用开发>    …
异步请求需要运行循环.当数据传递到服务器或是被客户端接收时,运行循环用于实现事件与委托对象之间的通信.异步请求在发出时,会在当前线程的运行循环上操作,这个实现细节是很重要的,因为在GCD块中或者是通过NSOperationQueue创建的线程并没有运行循环.因此,如果在后台线程上发出了异步请求,那么还需要确定线程是有运行循环还是使用了别的运行循环.如下代码片断展示了如何显示地将请求处理指定给运行循环. NSURLConnection connection=[[NSURLConnection al…
一,同步请求的最佳实践. 1,只在后台过程中使用同步请求,除非确定访问的是本地文件资源,否则请不要在主线程上使用. 2,只有在知道返回的数据不会超出应用的内存时才使用同步请求.记住,整个响应体都会位于代码的内存中.如果响应很大,那么可能导致应用出现内存溢出问题.此外,当代码将响应解析为所需的格式时可能需要复制返回的数据,这会导致内存增加一倍. 3,在处理返回的数据前,验证错误与调用返回的HTTP响应状态码. 4,如果源URL需要验证,那么不使用同步请求,因为同步框架并不支持对认证请求做出响应.唯…
一,GET方法. 从服务器获取一段内容,用HTTP术语来说就是实体.GET请求通常不包含请求体,不过也是可以包含的.有些网络缓存设施只会缓存GET响应.GET请求通常不会导致服务器端的数据变化. 二,POST方法. 使用客户端提供的数据更新实体.POST请求通常会在请求体中加入应用服务器所需的信息.POST请求是非幂的,这意味着如果处理多个请求,那么结果与处理单个请求是不同的. 三,HTTP虽然使用了有状态的TCP传输层,但HTTP却是个无状态协议.这意味着HTTP服务器并不会保留关于某个请求的…
代码: - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. //URL百分号编码 //URL编码会编码&,问号和其他标点符号. NSString *urlString=@"http://myhost.com?query=This is a question"; NSString *encoded=[u…
http://user:password@hostname:port/absolute-path?query. http:  协议 user:password@   认证 hostname:  主机名 port    端口号 /absolute-path   绝对路径 ?query    查询字符串 参考资料:<iOS网络高级编程-iPhone和iPad的企业应用开发>    …
运行循环是由类NSRunLoop表示的,有些线程可以让操作系统唤醒睡眠的线程以管理到来的事件,而运行循环则是这些线程的基本组件.运行循环是这样一种循环,可以在一个周期内调度任务并处理到来的事件.iOS应用中的每个线程最多只有一个运行循环.对于主线程来说,运行循环会为你开始,在应用委托applicationDidFinishedLaunchingWithOptions:主法调用后就可以访问了. 参考资料:<iOS网络高级编程-iPhone和iPad的企业应用开发>…
在大型商场,医院或是大楼里,你是否曾经有过找不到想去的地方的经历呢?这种情况下采用传统的定位方法就有些力不从心了.首先这些地方不能采用GPS定们,而Wifi和蜂窝式移动电话基站定位误差比较大.这种情况下的定位就叫”微定位“技术 . 微定位技术中一个比较重要的概念-地理围栏.地理围栏是LBS的一种新应用,就是用一个虚拟的栅栏围出一个虚拟地理边界.当手机 进入,离开某个特定地理区域,或在该区域内活动时,手机可以接收自动通知和警告.有了地理围栏技术,位置社交网站主可以帮助用户进入某一地区时自动登记.…
iOS提供3种不同的定位途径: 1,WiFi定位,通过查询一个WiFi路由器的地理位置信息,比较省电:iPhone,iPod touch和iPad都可以采用: 2,蜂窝式移动电话基站定位,通过移动运营商基站定位,只有iPhone,3G版本的iPod touch 和iPad可以采用. 3,GPS卫星定位,通过3-4刻GPS卫星位置定位,最为准确,但是耗电量大,不能遮挡,iPhone,iPod touch和iPad都可以采用. iOS与Android系统定位的区别: Android系统在定位服务编程…
定位元素要掌握css技术,核心就是要掌握元素定位. 一般把下面这条规则作为所有css样式表的第一条,初始化所有元素的内边距和外边距都为0: * {padding:0;margin:0;} 盒模型浏览器为页面中的每个元素生成一个矩形盒子.作为该元素的容器.默认情况下,每个盒子的边框不可见,背景也是透明的,所以我们不能直接看到这些盒子. 元素盒子的3个属性:边框(border),可以设置边框的宽窄.样式和颜色:内边距(padding),盒子内容区与边框的间距:外边距(margin),盒子与相邻元素的…
iOS的定位服务用到的框架是#import <CoreLocation/CoreLocation.h> 定位中用到的类是CLLocationManager 一.iOS8.0之前的定位 向用户描述授权的信息需要在info.plist中配以下key 后台情况下开启定位服务需要进行如下图配置 二.iOS8.0之后的定位(包含iOS8.0) iOS8.0之后前台定位授权和后台定位授权需要调用下面对应的方法 // 前台定位授权 官方文档中说明info.plist中必须有NSLocationWhenInU…
iOS后台定位实现 (2013-01-24 16:43:12)     工作中碰到一个定位的应用场景:app需要在后台运行,实时上传用户地理位置.   苹果对iOS的规范性在提升了app的品质的同时也带来了对开发者的限制.翻阅了各种官方文档和资料,得出结论如下: 1.实现后台定位有2种方式: standard location service(调用CLLocationManager的startUpdatingLocation) significant-change location servic…
iOS 后台定位被拒的原因很简单就是没有达到苹果对后台定位的要求. 本地要求: 1.在plist文件中添加字段 "Privacy - Location Always Usage Description" ,值就填写在你的运用程序中使用后台定位的地方.如"高德地图会在搜索和导航服务中使用你的位置信息." 2.在plist文件中添加字段 "Required background modes" 数组类型添加一个值item 值的话就填 "App…
这不是一本新书,这是一本很值得中国程序员看的老书,所以我不是来做卖新书广告的:) 但它的确是一本好书,这本书在Amazon上3个business categories排第一.作者Jason Fried和David Heinemeier Hansson 是全世界效率最高的软件公司之一Basecamp的创始人!他们的员工分散在世界各地远程办公,是通过远程方式协同工作的典范.这两个作者合著的第一本书<重来>(Rework)高居<纽约时报>畅销书榜前列,书中推崇的管理理念在国内商业领域也产…
Hi All, 分享一下我学HTML5 摘抄的读书笔记(我用的还是英文,因为一些新的东西还是来自于欧美国家,希望大家习惯于看一些英文材料): 1. Difference between Sections and Articles? Think of a section as a logical part of a document. Think of an article as actual content, such as a magazine article, blog post, or n…
Implicit Animations  默认动画 读书笔记 Do what I mean, not what I say. Edna Krabappel, The Simpsons   Part I covered just about everything that Core Animation can do, apart from animation. Animation is a pretty significant part of the Core Animation framewor…