Posts tagged: ios

编写简单的视图切换应用

iOS应用中,经常要切换视图,不切换视图的应用是少数而且是比较简单的。 这里按照步骤说一下实现过程。本文参照了《Beginning iPhone Development》,但可能是篇幅的限制,作者一气呵成的写了个大的例子。我这里分几个阶段逐步实现。这样在使用IB(Interface Builder)时才不会感到混乱。另外,对一些附加的内容做了精简,这样更方便理解。 总的效果是这样: 点击“切换”按钮后,从第一屏切换到第二屏,循环往复。 日志引用最简单的WebView应用    发送文章为PDF   

星期二 十月 12th, 2010 in , , , | 2 Comments »

iOS实现本地通知

本地通知,local notification,用于基于时间行为的通知,比如有关日历或者todo列表的小应用。另外,应用如果在后台执行,iOS允许它在受限的时间内运行,它也会发现本地通知有用。比如,一个应用,在后台运行,向应用的服务器端获取消息,当消息到达时,比如下载更新版本的提示消息,通过本地通知机制通知用户。 本地通知是UILocalNotification的实例,主要有三类属性: scheduled time,时间周期,用来指定iOS系统发送通知的日期和时间; notification type,通知类型,包括警告信息、动作按钮的标题、应用图标上的badge(数字标记)和播放的声音; 自定义数据,本地通知可以包含一个dictionary类型的本地数据。 对本地通知的数量限制,iOS最多允许最近本地通知数量是64个,超过限制的本地通知将被iOS忽略。 如果就写个简单的定时提醒,是很简单的,比如这样:    发送文章为PDF   

星期三 九月 29th, 2010 in , , , | No Comments »

ios创建库及其调用

ios的应用,也不都是使用ios自带的框架或者自己写所有实现,有时需要使用第三方库,比如ios调用flurry做统计分析。 下面简要说明,如何创建自己的库,并且部署到另外的项目中使用。 创建库 通过xcode的想到可以很容易的创建库。为了简单起见,这里只用objc写最简单的类代码。当然是可以用c、c++语法写库函数的,而且也很常见。 ios为了安全上的考虑,只允许使用静态库,即静态联编到应用程序中。动态库,是独立存在的,直到应用运行时才加载到应用内存中。    发送文章为PDF   

星期三 九月 29th, 2010 in , , | No Comments »

ios简单使用core data

iPhone OS在2009年6月份推出3.0版本SDK,其中一个特性是引入了Mac SDK中的core data。是一种ORM(Object Relationships Mapping)解决方案,类似java的Hibernate。 有了这个,就不必像ios简单sqlite使用那样编写繁琐代码了,减少工作量,也可以回避使用c的语法,降低ios开发的技术门槛。总之,可降低开发成本,提高项目质量。 本文在很大程度上参考了《Core Data Tutorial for iOS》。 创建ios项目 为了方便,直接用xcode工具向导创建项目,这样可以自动集成core data的支持。 不一定创建window-based项目,split view-based也可以,用于ipad项目,或者对于iphone的navigation-based项目亦可。    发送文章为PDF   

星期二 九月 28th, 2010 in , , , | No Comments »

ios简单sqlite使用

sqlite是嵌入式的和轻量级的sql数据库。sqlite是由c实现的。广泛用于包括浏览器(支持html5的大部分浏览器,ie除外)、ios、android以及一些便携需求的小型web应用系统。 使用sqlite前的准备 使用sqlite是很多做ios开发中第一次面对c的情况,包括我。因为sqlite是c写的,objc可以直接使用c代码。在sqlite前,一般都会使用cocoa touch框架,都是基于objc的。 首先,需要在对应文件的头文件中加入: #import "/usr/include/sqlite3.h" 并在Frameworks中加入所需的库,否则会报错: Undefined symbols:   "_sqlite3_open", referenced from:   加入库的方法是:   日志引用ios简单使用core data    发送文章为PDF   

星期二 九月 28th, 2010 in , , , , , | No Comments »

iOS中对文件的操作

因为应用是在沙箱(sandbox)中的,在文件读写权限上受到限制,只能在几个目录下读写文件: Documents:应用中用户数据可以放在这里,iTunes备份和恢复的时候会包括此目录 tmp:存放临时文件,iTunes不会备份和恢复此目录,此目录下文件可能会在应用退出后删除 Library/Caches:存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除 在Documents目录下创建文件 代码如下: NSArray *paths=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory                                             , NSUserDomainMask                                             , YES); NSLog(@"Get document path: %@",[paths objectAtIndex:0]); NSString *fileName=[[paths objectAtIndex:0] stringByAppendingPathComponent:@"myFile"]; NSString *content=@"a"; NSData *contentData=[content dataUsingEncoding:NSASCIIStringEncoding]; if ([contentData writeToFile:fileName atomically:YES]) {     NSLog(@">>write ok."); } 可以通过ssh登录设备看到Documents目录下生成了该文件。 日志引用ios简单sqlite使用    发送文章为PDF   

星期二 九月 28th, 2010 in , , | 1 Comment »

编写push notification之服务器端发送通知

在编写push notification之获取device token中拿到device token以后,需要把token字符串发送给应用的服务器端,即provider。 provider将token号、通知内容、通知形式(比如是否弹出提示窗口、是否发声等)发送给苹果的服务器(apns)。 最简单的provider实现,其实就是通过证书,和苹果服务器建立安全连接(tsl或ssl),通过认证建立连接后,向苹果服务器发送符合苹果要求的数据流。 获得证书 苹果提供两种接入方式的证书: developer,用于测试 production,用于产品    发送文章为PDF   

星期一 九月 27th, 2010 in , , , , , , | No Comments »

编写push notification之获取device token

iOS的通知(notifications)有两种形式: push notifications,从iOS3开始就有了,由远程服务器发起通知 local notifications,从iOS4开始支持,由本地应用发起的通知 两种通知都是为了提醒用户后台执行的应用有了变化。从用户角度来看,效果是一样的,都是通知。只是实现的方式不一样,对于技术实现来说。 本文主要说明push notification的device token的步骤。 可以通过《偷窥iPhone Push Notification的幕后》和《iPhone的Push(推送通知)功能原理浅析》对push notification有个原理上的了解。 日志引用编写push notification之服务器端发送通知    发送文章为PDF   

星期一 九月 27th, 2010 in , , , | 2 Comments »

获取iOS设备的基本信息

有时需要获取的哦啊iOS设备的基本信息,比如: 系统唯一标识 是什么设备:iPad还是iPhone等 iOS版本号 系统名称 这是在iPad模拟器上显示的信息: 日志引用编写push notification之获取device token    发送文章为PDF   

星期日 九月 26th, 2010 in , , , | 2 Comments »

iOS应用运行环境

本文参考:iOS Application Programming Guide – The Application Runtime Environment iOS运行环境的设计目标,快速安全的执行应用程序。 快速启动,短暂使用 一个典型情况是,用户从口袋中拿出设备,只使用几秒钟或者几分钟,然后再次放在口袋里。 这要求: 快速启动应用 使用后能尽快退出 特殊的系统行为 在很多地方,iOS都和mac os x特性和行为一样。但是有些情况和mac os x不同: 虚拟内存系统 管理程序内存,iOS和mac os x拥有相同的特性和行为方式。在iOS下,每个程序仍然拥有自己的虚拟地址空间,但是和mac os x不同的是,它使用虚拟内存受到可用物理内存数量的限制。这是因为iOS不能在内存满了以后把可换出的内存分页写入磁盘。作为替代,当应用程序需要腾出更大内存的时候,虚拟内存系统将释放这些可换出内存。这会删除内存中不再使用的部分,也包括只读内容,比如代码页。这些页面能够经常被重新加载到内存中,当再次需要它们的时候。 如果内存继续受到限制,系统可能向正在运行的应用发送通知,要求它释放额外的内存。应用程序应该响应这个通知,并且释放内存。    发送文章为PDF   

星期六 九月 25th, 2010 in , , | No Comments »