本文共 904 字,大约阅读时间需要 3 分钟。
iOS7 Release Note:关于iOS7.0 Beta版本SDK发布的相关变更
在经历了iOS7.0 Beta版本SDK的学习后,我整理了与日常开发工作密切相关的几个重要变更内容,供大家参考。
一、网络连接
从iOS7开始,手机在Wi-Fi连接异常时,将自动切换至蜂窝网络进行联网。这与iOS7之前的表现有明显区别,尤其在镇内用户群体中,切换到蜂窝网络可能会导致意外的流量消耗。
这一变更对开发者来说也产生了影响。传统的网络连接状态检测方法(如SCNetworkReachability)可能不再适用,因为网络模式在数据下载过程中可能会发生切换。此外,开发者可以通过设置 NSURLRequest的方式禁用蜂窝网络访问。
二、剪贴板UIPasteboard
UIPasteboard最初设计初衷是为应用程序间提供数据共享通道。在iOS7之前,只需了解剪贴板的名称,便能访问其中的内容。这种设计使得OpenUDID等基于设备唯一标识符的开发方式得以实现。
但在iOS7之后,UIPasteboard的使用方式有了显著变化。现今,应用程序之间的数据共享必须基于相同的CFBundleIdentifier前两部分标识符(如com.yourcompany.xx),才能使用同一个剪贴板。不同应用组之间,即使剪贴板名称相同,也会被视为独立的资源。
这意味着OpenUDID等基于设备唯一标识符的方案将逐渐失去作用。
三、设备唯一识别符相关
自iOS5开始,苹果逐步摒弃UDID的使用,并于2013年5月禁止其应用程序的使用。iOS7进一步移除了UIDevice的uniqueIdentifier方法,并在后续版本中通过sysctl和ioctl系统调用获取网卡地址的方式,返回固定值02:00:00:00:00:00,而非真实网卡地址。
旧有应用程序仍可调用uniqueIdentifier方法,但将返回以FFFFFFFF开头的虚拟ID值,此外还需结合identifierForVendor的返回值来获取更详细的设备标识信息。
以上变更内容将对开发者的日常工作产生重要影响,建议在应用程序开发中及时进行相应适配。
转载地址:http://xfhfk.baihongyu.com/