分类: C/C++
2015-03-16 14:24:07
原文地址:Iphone 应用程序编程指南--学习笔记 作者:linux_wuliqiang
//**********************************************************************************
001> 自动休眠定时器(屏幕休眠的控制)
将共享的UIApplication对象的idleTimerDisabled属性设置为YES,就可以禁用自动休眠定时器。
由于禁用休眠定时器会导致更大的电能消耗,所以开发者应该尽一切可能避免
这样做。只有地图程序、游戏、以及不依赖于触摸输入而又需要在设备屏幕上
显示内容的应用程序才应该考虑禁用休眠定时器。音频应用程序不需要禁用这
个定时器,因为在屏幕变暗之后,音频内容可以继续播放。如果您禁用了定时
器,请务必尽快重新激活它,使系统可以更省电
//**********************************************************************************
002> Info.plist 中的属性设置, Info.plist文件中重要的键
CFBundleDisplayName (程序包显示名):显示在应用程序图标下方的名称。这个值应该本地化为所有支持的语言。
CFBundleIdentifier (程序包标识,打包签名字符串ID):这是由您提供的标识字符串,用于在系统中标识您的应用程序。这个字符串必须是一个统一的类型标识符(UTI),仅包含字母数字(A-Z、a-z、0-9),连字
符(-),和句号(.);且应该使用反向DNS格式。举例来说,如果您的公司的域名为Ajax.com,且您创建
的应用程序名为Hello,则可以将字符串com.Ajax.Hello作为应用程序包的标识。程序包的标识用于验证应用程序的签名。
CFBundleURLTypes (URL类型):这是应用程序能够处理的URL类型数组。每个URL类型都是一个字典,定义一种应用程序能够处理的模式(如http或mailto)。应用程序可以通过这个属性来注册定制的URL模式。
CFBundleVersion (程序包版本号,只能是0-9的数字字符串,不能出现其他字符,要不然上次程序包的时候,会出错):这是一个字符串,指定程序包的连编版本号。它的值是单调递增的,由一或多个句号分隔的整数组成。这个值不能被本地化。
LSRequiresIPhoneOS 这是一个Boolean值,用于指示程序包是否只能运行在iPhone OS 系统上。Xcode自动加入这个键,并将它的值设置为true。您不应该改变这个键的值。
NSMainNibFile (主nib文件的名称)这是一个字符串,指定应用程序主nib文件的名称。如果您希望使用其它的nib文件(而不是Xcode为工程创建的缺省文件)作为主nib文件,可以将该nib文件名关联到这个键上。nib文件名不应该包含.nib扩展名。
UIStatusBarStyle 这是个字符串,标识程序启动时状态条的风格。这个键的值基于UIApplication.h头文件中声明的UIStatusBarStyle常量。缺省风格是UIStatusBarStyleDefault。在启动完成后,应用程序可以改变状态条的初始风格。
UIStatusBarHidden 这个一个Boolean值,指定在应用程序启动的最初阶段是否隐藏状态条。将这个键值设置为true将隐藏状态条。缺省值为false。
UIInterfaceOrientation 这是个字符串,标识应用程序用户界面的初始方向。这个键的值基于IApplication.h头文件中声明的UIInterfaceOrientation 常量。缺省风格是UIInterfaceOrientationPortrait。有关将应用程序启动为景观模式的更多信息,请参见“以景观模式启动”部分。
UIPrerenderedIcon 这个一个Boolean值,指示应用程序图标是否已经包含发光和斜面效果。这个属性缺省值为false。如果您不希望系统在您的原图上加入这些效果,则将它设置为true。
UIRequiredDeviceCapabilities 这是个信息键,作用是使iTunes和App Store知道应用程序运行需要依赖于哪些与设备相关的特性。iTunes和移动App Store程序使用这个列表来避免将应用程序安装到不支持所需特性的设备上。这个键的值可以是一个数组或者字典如果您使用的是数组,则数组中存在某个键就表示该键对应的特性是必需的;如果您使用的是字典,则必须为每个键指定一个Boolean值,表示该键是否需要。无论哪种情况,不包含某个键表示该键对应的特性不是必需的。如果您需要可包含在这个字典中的键列表,请参见表
1-4。这个键在iPhone OS 3.0及更高版本上才被支持。
UIRequiresPersistentWiFi 这是个Boolean值,用于通知系统应用程序是否使用Wi-Fi网络进行通讯。如果您的应用程序需要在一段时间内使用Wi-Fi,则应该将这个键值设置为true;否则,为了省电,设备会在30分钟内关闭Wi-Fi连接。设置这个标志还可以让系统在Wi-Fi网络可用但未被使用的时候显示网络选择对话框。这个键的缺省值是false。
请注意,当设备处于闲置状态(也就是屏幕被锁定的状态)时,这个属性的值为true是没有作用的。这种情
况下,应用程序会被认为是不活动的,虽然它可能在某些级别上还可以工作,但是没有Wi-Fi连接。
UISupportedExternalAccessoryProtocols 这是个字符串数组,标识应用程序支持的配件协议。配件协议是应用程序和连接在iPhone或iPod touch上的第三方硬件进行通讯的协议。系统使用这个键列出的协议来识别当配件连接到设备上时可以打开的应用程序。有关配件和协议的更多信息,请参见“和配件通讯”部分。这个键只在iPhone OS 3.0和更高版本上支持。
UIViewGroupOpacity 这是个Boolean值,用于指示Core Animation子层是否继承其超层的不透明特性。这个特性使开发者可以在仿真器上进行更为复杂的渲染,但是对性能会有显著的影响。如果属性列表上没有这个键,则其缺省值为NO。这个键只在iPhone OS 3.0和更高版本上支持。
UIViewEdgeAntialiasing 这是个Boolean值,用于指示在描画不和像素边界对齐的层时,Core Animation层是否进行抗锯齿处理。这个特性使开发者可以在仿真器上进行更为复杂的渲染,但是对性能会有显著的影响。如果属性列表上没有这个键,则其缺省值为NO。这个键只在iPhone OS 3.0和更高版本上支持。
如果信息属性文件中的属性值是显示在用户界面上的字符串,则应该进行本地化, 特别是当Info.plist中的字符串值是与本地化语言子目录下InfoPlist.strings文件中的字符串相关联的键时。更多信息请参见“国际
化您的应用程序”部分。
表1-4列出了和UIRequiredDeviceCapabilities键相关联的数组或字典中可以包含的键。
您应该仅包含应用程序确实需要的键。如果应用程序可以通过不执行某些代码路径来适应设备特性不存在的情况,则不需要使用对应的
表1-4 UIRequiredDeviceCapabilities键的字典键键描述
telephony 如果您的应用程序需要Phone程序,则包含这个键。如果您的应用程序需要打开tel模式的URL,则可能需要这个特性。
sms 如果您的应用程序需要Messages程序,则包含这个键。如果您的应用程序需要打开sms模式的URL,则可能需要这个特性。
stillcamera 如果您的应用程序使用UIImagePickerController接口来捕捉设备照相机的图像时,需要包含这个键。
autofocuscamera 如果您的应用程序需要设备照相机的自动对焦能力,则需要包含这个键。虽然大多数开发者应该不需要,但是如果您的应用程序支持微距摄影,或者需要更高锐度的图像以进行某种处理,则可能需要包含这个键。
videocamera 如果您的应用程序使用UIImagePickerController 接口来捕捉设备摄像机的视频时,需要包含这个键。
wifi 当您的应用程序需要设备的网络特性时,包含这个键。
accelerometer 如果您的应用程序使用UIAccelerometer接口来接收加速计事件,则需要包含这个键。如果您的程序仅需要检测设备的方向变化,则不需要。
locationservices 如果您的应用程序使用Core Location框架来访问设备的当前位置,则需要包含这个键(这个键指的是一般的位置服务特性。如果您需要GPS级别的精度,则还应该包含gps键)。
gps 如果您的应用程序需要GPS(或者AGPS)硬件,以获得更高精度的位置信息,则包含这个键。如果您包含了这个键,就应该同时包含location-services键。如果您的程序需要更高精度的位置数据,而不是由蜂窝网络或Wi-fi信号提供的数据,则应该要求只接收GPS数据。
magnetometer 如果您的应用程序使用Core Location框架接收与方向有关的事件时,则需要包含这个键。
microphone 如果您的应用程序需要使用内置的麦克风或支持提供麦克风的外设,则包含这个键。
opengles-1 如果您的应用程序需要使用OpenGL ES 1.1 接口,则包含这个键。
opengles-2 如果您的应用程序需要使用OpenGL ES
2.0 接口,则包含这个键。
//**********************************************************************************