posts - 17,comments - 17,trackbacks - 0

摘要:这节课主要讲iCloud以及demo。 iCloud 什么是iCloud呢?基本上,对用户来说iCloud只是个网络共享目录的URL,它的意图主要是让用户把他们的文档、数据、备份、app文件放到网上去,然后在他们任意的其他设备上,都可以访问该数据。这是它最主要的用途。 为了app能访问云,它需要获得正确的权限,在xcode中只要点击一个按钮就能获得权限。 只要在project target里单击黄色箭头指向的按钮,它会自动填写授权信息。 阅读全文
posted @ 2013-03-27 23:07 写下一生的程序 阅读 (6117) 评论 (2) 编辑
摘要:这节课主要讲NSTimer的内容以及它的替代方案“perform after delay”、更复杂的动画、Alerts、Action Sheets、UIImagePickerController(用来从camera里取东西)和Core Motion。如果不是一个重复timer,不需要invalidate,它自己会结束。可以看到repeats是YES或NO,代表是否重复。如果有一个strong指针指向它,那么需要将其设置为nil;如果是一个weak指针,它自己就可能把自己nil掉。所以这是除了outlet之外,另一种可能会使用一个弱指针的情况。调用了scheduledTimerWithTimeInterval,在它运行的时候会有强指针指向它,一旦通过invalidate停止它,它就不会再有强指针。 阅读全文
posted @ 2013-03-26 16:37 写下一生的程序 阅读 (3408) 评论 (0) 编辑
摘要:这节课主要讲四种特性:Modal View Controllers、UITextField and UITextView、UIView Animation和NSTimer。 Modal View Controllers 它是一个模式,当用户要继续做某些事情的时候必须先做别的事情。如何使Modal View Controllers出现在屏幕上?用segue,从一个button或bar button或什么的control-drag出来,来触发Modal View Controllers。点击之后,在xcode中control-drag以创建一个segue,然后将其设置为modal,当你inspect这个segue,在这里可以设置类似它的出现方式之类的东西。 阅读全文
posted @ 2013-03-23 23:57 写下一生的程序 阅读 (2414) 评论 (0) 编辑
摘要:这节课的主要内容是Core Data的线程安全、Core DataTable View,以及大Demo。 Core Data Thread Safety NSManagedObjectContext不是线程安全的,只能在创建NSManagedObjectContext的那个线程里访问它。一个数据库有多个UIManagedDocument和context,它们可以在不同的线程里创建,只要能管理好它们之间的关系就没问题。 线程安全的意思是,程序可能会崩溃,如果多路访问同一个NSManagedObjectContext,或在非创建实例的线程里访问实例,app就会崩溃。 阅读全文
posted @ 2013-03-20 23:59 写下一生的程序 阅读 (4519) 评论 (3) 编辑
摘要:这节课的主要内容是Core Data、NSNotificationCenter和Objective-C Categories。 Core Data 它是一个完全面向对象的API,负责在数据库中存储数据,底层也是由类似于SQL的技术来实现的。 在高级语言这一层,如何使用Core Data?在xcode中,有个工具可以建立对象之间的映射,这些对象会存储在你的数据库里,它们是NSObject的子类,实际上是NSManagedObject的子类,然后Core Data负责管理这些对象之间的关系。 阅读全文
posted @ 2013-03-14 21:13 写下一生的程序 阅读 (18652) 评论 (1) 编辑
摘要:这节课主要讲几个部分,一个是final project的准则,然后是持久化(Persistence)问题。 持久化(Persistence)意思就是当你退出app的时候它还会存在。NSUserDefaults就是一个非常简单的持久化方案,不过这有限制,它只能是很小的东西,通常是些用户选项。 如何把那些大数据的东西持久化? 第一个方法,把东西持久化的第一个简单的方式有点像用NSUserDefaults里的property list来实现的进化版,property list是我们自定义的一个概念,是NSArray、NSDictionary、NSNumber、NSString、 NSDate和NSData的组合。所有以上这些都有API可以用来保存,NSUserDefaults也有些API可以。 阅读全文
posted @ 2013-03-11 11:00 写下一生的程序 阅读 (1710) 评论 (0) 编辑
摘要:今天要讲的是设备的位置,包括如何找到设备的位置和如何在地图上显示位置。 Core Location不是一个UI的东西,没有用户界面,它只是关于找到该设备的位置。Core Location的基本对象是一个CLLocation,CL是Core Location库的前缀,location是基本对象。关于这个位置读数的精度,会谈到时间戳(timestamp),就是这个位置何时被记录。speed,移动的速度有多快,通过GPS坐标的瞬时读数判断。course,类似移动的航行。最重要的是coordinate,它告诉你这个CLLocation在哪里。 阅读全文
posted @ 2013-03-09 23:03 写下一生的程序 阅读 (3711) 评论 (0) 编辑
摘要:这节课的主要内容包括: 1.UI元素,比如UITabBarController以及UINavigationItem(就是自定义navigation controller里面的view controller的样子的property); 2.然后就是Blocks,Blocks是一种语言特性,这非常重要,我们所有在ios的多线程的东西都要用到Blocks,因为主线程也就是UI线程,时常要跟用户交流,这是永远都不能被阻塞的。 UITabBarController UITabBarController基本上就是你在iphone或其他ios应用里看到的那些在底部的黑色的button,比如时钟app,可以看到从左边点到右边,就会出现不同的view controller。 阅读全文
posted @ 2013-03-03 23:56 写下一生的程序 阅读 (1609) 评论 (0) 编辑
摘要:今天讲的是TableViews,它可用于呈现动态数据列表,也可用于静态数据。 UITableView tableView是个一维表,这是一个UIScrollView的子类,所以它是一个滚动列表。它可以高度定制化,它从它的两个不同的delegation中获取所有的定制化信息,有data source和delegate这两个不同的properties,data source负责提供表中的数据,delegate负责数据显示。如果想显示多维数据,就是有行和列,可以使用sections或者可以把它放进一个navigation controller。 阅读全文
posted @ 2013-02-27 23:42 写下一生的程序 阅读 (8329) 评论 (0) 编辑
摘要:这节课主要讲关于View Controller的生命周期、ImageView、ScrollView、WebView及它们的demo演示。 View Controller Lifecycle View Controller的生命周期指它们被创建、存活然后消亡。 View Controller的生命周期的第一部分是创建,这部分基本上由storyboard里面的segue完成,一个segue总是创建一个新的View Controller。在storyboard里有个方法叫做instantiateViewControllerWithIdentifer,你需要一个View在storyboard里的View Controller,你给这个方法一个identifier,然后它就会帮你实例化一个View Controller,然后你的职责就是把这个View放在屏幕上,可以push到navigation controller,也可以是popover。 阅读全文
posted @ 2013-02-13 22:28 写下一生的程序 阅读 (2246) 评论 (0) 编辑