·概况:我要怎样... o... 找到设备o位置? o... 感应动作? o... 感应设备o方位? o... 独特地定义设备o? o... 确定程序是在iPhone上还是在iPod 上运行? o... 从语法上分析XML? ·联系数据:我要怎样... o... 管理地址簿的联系数据? ·日期,·时间,·数字:我要怎样... o... 获得当前日期和时间? o... 格式化日期和数字? o... 给出我的应用程序的已运行时间? ·文件夹管理:我要怎样... o... 为局部区域编写信息? o... 写入SQLite 数据库? o... 捆绑SQLite数据库和我的应用程序? o... 从一个网站显示数据? ·计时器:我要怎样... o... 设置一个计时器? ·优先权与设置项目:我要怎样... o... 在设置项目中保存我的应用程序的优先权? o... 读取我的应用程序的优先权? o... 确定吧应用程序优先权放在那里? 概况 我要怎样找到设备位置 使用Core Location(核心位置)框架,创建一个CLLocationManager用你的应用程序的另一个对象作为代表举例说明。这个代表应当实现 locationManager:didUpdateToLocation:fromLocation:。然后给位置管理发送 astartUpdatingLocation消息来启动它。位置管理使用CLLocationobjects调用代表方法,其中包括了地理经纬坐标, 以及测量数据的高度和精度。 我要怎样感应动作? 使用共享的 UIAccelerometer对象,具体指定一个更新间隔期,在应用程序中设定对象中的一个作为它的代表。这个对象应当实现 accelerometer:didAccelerate:。这个代表方法与UIAcceleration对象一起被调用,包括X,Y,Z轴的加速度感 应,它们是作为由重力导致的一般加速度因素来测量的。AccelerometerGraph演示怎样使用加速度感应器。 我要怎样感应设备方位? 使用UIDevice类的定位方法来找到设备的物理方位(纵向,颠倒纵向,左转横 向,右转横向,平面向上,平面向下)。记住这个物理方向并不必与由UIViewController类定义的当前界面方向一致。 要得到低层的设 备物理方向(即基于角度),使用UIAccelerometer和UIAcceleration类来获得X,Y还有Z轴的值。然后,你使用这些值提取重力 向量。参考GLGravity示例应用程序。 我要怎样独特地定义设备? 使用UIDevice类来为当前设备 获得共享设备示例。然后,阅读uniqueIdentifier属性值,这是一个由各种硬件标识符构成的散列值。 我要怎样确定程序是在 iPhone上还是在iPod上运行? 使用UIDevice类来为当前设备获得共享设备示例。然后,阅读modelproperty值, 它是一个字符串,就像@"iPhone"或@"iPod"。 我要怎样从语法上分析 XML? 要在iPhone OS下,从语法上分析XML,你可以使用NSXMLParser类。它提供一个事件驱动的Objective C API,你可以用这个从XML文档提取内容。 SeismicXML示例代码演示怎样使用NSXMLParser。 你也可以使用 libxml C库,它提供扩展的,记录详尽的API,这个库支持读取,改变,序列化XML文档。 联系数据 我要怎样管理地址簿的联系数据? 你使用Address Book框架来读写联系数据。你可以使用ABAddressBook隐含类型来创建记录,转移已有的记录,比较和分类数据,以及其他的操作。参阅 ABPerson Reference,了解更多信息。 日期,时间,以及数字 我要怎样获得当前日期和时间? 要获得当前日期和时间,使用NSDate类 ([NSDate date])的 date方法。你也可以呼叫Core Foundation方法CFAbsoluteTimeGetCurrent。 我要怎样格式化日期和数字? Cocoa提供格式程序类,以写入字符串,或从字符串中转换日期和数字。对于日 期来说,NSDateFormatter类提供API以具体制定日期风格(date style),时间风格(time style),现场(locale),时区(time zone),日历(calendar),格式字符串(format string),还有两位年份转换日期(two-digit-year crossover date)。对于数字来说,NSNumberFormatter类提供API以具体制定分数和整数的数位,十进位和分组的分割器,舍入整数,填充补白, 等等。参阅Data Formatting Programming Guide for Cocoa Core Foundation在CFDateFormatter和CFNumberFormatterAPIs提供对等的服务 。 我要怎样给出我的应用程序的已运行时间? 使用type(NSDate *)的保留属性在你的applicationDidFinishLaunching方法保存你的应用程序的开启时间。然后,当你想要知道你的应用程序的已 运行时间的时候,发送一个timeIntervalSinceNow消息给那个成员变量,选取否定,就像在列表1中展示的一样。 timeIntervalSinceNow为未来的日期返回正值,为过去的日期返回负值。 列表1:给出你的应用程序的已运行时间 // at launch (e.g. in applicationDidFinishLaunching:) self.launchDate = [NSDate date]; // launchDate must be a retained property // at some future point,determining elapsed time NSTimeInterval secondsSinceLaunch = -[self.launchDate timeIntervalSinceNow]; 文件夹管理 我要怎样为局部区域编写信息? 你可以在你的应用程序的 本地存储区域编写。你通过呼叫基础函数NSSearchPathForDirectoriesInDomains找到路径,参阅iPhone Application Programming Guide中的"Getting Paths to Application Directories" 我要怎样写入SQLite 数据库? 你 可以用与在其他平台上相同的方式写入SQLite 数据库。主要限制在于你必须为你的数据库选择一个替代位置(参阅“我要怎样为局部区域编写信息?”)。参阅SQLiteBooks示例代码,获取更多信 息。 我要怎样捆绑SQLite数据库和我的应用程序? 在你的 Xcode项目中添加现有的数据库文件夹。就像你添加其他任何的资源文件夹一样,把它拖入项目的文件夹视图的“Resources”组。收到提示后,确定 你把文件夹添加在了合适的目标(Target)(如果你的项目有超过一个的目标)。Xcode会在你构建自己的项目的时候把文件夹复制到应用程序包中 如 果你的数据库意味着只读属性的话,这就是你所需要做的全部事情。 如果你需要写入你的SQLite数据库,你将需要在你的应用程序启动时,把它复 制到你的应用程序发件箱中的名录簿之一中,比如文档(Documents) 我要怎 样从一个网站显示数据 你使用UIWebView类从一个网站读取和显示数据。你用NSURL类和一个特定的URL把一个网站作为目 标,参看列表2。 列表 2:从一个网站中读取数据 NSURL *url = [NSURL URLWithString:@" http://www.apple.com "]; [webView loadRequest:[NSURLRequest requestWithURL:url]]; 计时器 我要怎样设置一个计时器? 有两种API可以用来与计时 器相互运作:如果你在使用Objective-C (Cocoa),基础框架有NSTimer;如果你在使用核心基础(Core Foundation)来运行回路,有CFRunLoopTimer。这两种API管理相同的机制,而且对象类型是可以互相交换的(参阅"toll- free bridging")。 计时器可以用在一个特定的时间间隔过去后或是未来的这个时刻,计时器也可以启用一次或是以一个固定的间隔重复 使用。重复计时器还可以手动调整下一次的启动时间。 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|