06 2013 档案

摘要:经常会有需要从应用中搜索并读取一个文件或图片。这时候就会用到如下的语句:NSString *path = [[NSBundle mainBundle] pathForResource:@"AddressFields" ofType:@"plist"];通过如上的语句获取到路径之后,就可以再通过各种方法解析或显示文件了NSMutableDictionary *registerConfig = [NSMutableDictionarydictionaryWithContentsOfFile:path];上面的方法中有一个对象是以前开发桌面程序没有看到过的:B 阅读全文
posted @ 2013-06-26 10:22 Dem 阅读(1935) 评论(0) 推荐(0) 编辑
摘要:总算成功开发完了第一个较大的功能(即时通信)。毕竟不可能什么东西都从轮子开始造,于是用到了一些组件,这里简单列举一下吧。1. FMDB作为一种文件型的数据存储方式,SQLite在iOS开发中自然也有用到。FMDB(https://github.com/ccgus/fmdb)是一个SQLite的Wrapper。它封装了SQLite的方法,简化成三个主要的类:FMDatabase:用来执行SQL,表示一个SQLite数据库FMResultSet:显示FMDatabase查询的结果FMDatabaseQueue:多线程情况下使用。具体的API就不多介绍了。不过需要提到的是:iOS官方提供的存储数据的 阅读全文
posted @ 2013-06-25 16:42 Dem 阅读(470) 评论(0) 推荐(0) 编辑
摘要:KVO和KVC分别是Key-Value Observing和Key-Value Coding的简称。想到这个话题是因为现在我写的tableView的更新是每隔数秒的轮询,在考虑是不是需要用个类似触发更新的机制。这自然就想到了观察者模式。搜索Objective-c的观察者模式,发现在http://stackoverflow.com/questions/165790/whats-the-nicest-way-to-do-observer-observable-in-objective-c-iphone-version中提到有两种方式可以实现:NSNotificationCenter和KVO。那个回 阅读全文
posted @ 2013-06-13 17:59 Dem 阅读(1015) 评论(0) 推荐(0) 编辑
摘要:C#写多了都忘记有前置声明(Forward Declaration)这么回事了,看到@class的时候楞了半天。今天就写这个主题吧。1. 为什么需要前置声明前置声明有助于避免循环依赖。像:interface A:NSObject- (B*)calculateMyBNess;@end@interface B:NSObject- (A*)calculateMyANess; @end这样声明无法编译,因为会遇到先有鸡还是先有蛋的问题。这时候就需要加一个前置声明:@class B;@interface A:NSObject- (B*)calculateMyBNess;@end@interface B: 阅读全文
posted @ 2013-06-04 18:02 Dem 阅读(4419) 评论(0) 推荐(0) 编辑