两个有用的资源hpple和json-framework

hpple(http://github.com/topfunky/hpple)用于解析HTML和XML,json-framework(http://code.google.com/p/json-framework/)用于解析和生成json,有完整的文档.
hpple需要把libxml加入到project中,使用示例:

#import "TFHpple.h"
NSData  * data      = [NSData dataWithContentsOfFile:@"index.html"];
TFHpple * doc       = [[TFHpple alloc] initWithHTMLData:data];
NSArray * elements  = [doc search:@"//a[@class='sponsor']"];
TFHppleElement * element = [elements objectAtIndex:0];
[e content];              // Tag's innerHTML
[e tagName];              // "a"
[e attributes];           // NSDictionary of href, class, id, etc.
[e objectForKey:@"href"]; // Easy access to single attribute

iphone使用SQLite API

首先是把数据库文件加入到项目中,简单的从finder中拖到resources目录就行了,然后是从targets中添加libsqlite3.dylib,在任何需要使用sqlite api的类中添加头文件

#include <sqlite3.h>

,在使用sqlite功能之前得把数据库文件复制到Documets文件夹.

- (BOOL) initializeDb {
	NSString *DATABASE_RESOURCE_NAME = @"test";
	NSString *DATABASE_RESOURCE_TYPE = @"db";
	NSString *DATABASE_FILE_NAME = @"test.db";
	NSArray *searchPaths =
		NSSearchPathForDirectoriesInDomains
		(NSDocumentDirectory, NSUserDomainMask, YES);
	NSString *documentFolderPath = [searchPaths objectAtIndex: 0];
	dbFilePath = [documentFolderPath stringByAppendingPathComponent:
				  DATABASE_FILE_NAME];
	[dbFilePath retain];
	if (! [[NSFileManager defaultManager] fileExistsAtPath: dbFilePath]) {
		NSString *backupDbPath = [[NSBundle mainBundle]
			  pathForResource:DATABASE_RESOURCE_NAME
			  ofType:DATABASE_RESOURCE_TYPE];
		if (backupDbPath == nil) {
			return NO;
		} else {
			BOOL copiedBackupDb = [[NSFileManager defaultManager]
			   copyItemAtPath:backupDbPath
			   toPath:dbFilePath
			   error:nil];
			if (! copiedBackupDb) {
				return NO;
			}
		}
	}
	return YES;
}

复制到Documents目录后,就可以通过c api使用sqlite了,通常遵循一个固定的调用过程:
1.sqlite3_open()准备一个要用的数据库
2.sqlite3_prepare(),sqlite3_prepare_v2()建立一个预处理SQL语句,sqlite3_prepare_v2()首选
3.sqlite3_step()执行语句
4.sqllite3_column_NNN()从结果集中取得类型化数据,NNN代表一个数据类型,如bytes,int,text等
5.sqlite3_finalize()释放资源
6.sqlite3_close()关闭数据库

uc browser进了app store

在itunes上看了看,已经是中国的免费排行版No.1了,看来在中国的知名度非常高啊,下载试了下,比较烂,还不如之前windows mobile上用的ucweb,要速度没速度,比页面显示比自带的safari差远了.而且操作体验太差了,不到一分钟就删了.不过看来opera mini能在 app store上出现的可能性应该很高了,期待opera mini吧.

Cocoa框架类之间的继承关系

Cocoa框架包含两个核心框架:Foundation和Application Kit框架,在Cocoa开发中是必要的,至于其它框架则(Core Data,Sync Services,Address Book,Preference Panes,Screen Saver,Web Kit)是辅助和可选的,Foundation框架和Application Kit框架的区分标准在于用户界面。如果一个对象既不出现在用户界面上,也不是专门用于支持用户界面,那么它就属于Foundation框架,命令行工具和Internet服务器就是这样的例子.Foundation类层次的根是NSObject类,它(和NSObject及NSCopying协议一起)定义了基本的对象属性和行为.Foundation框架的剩余部分由几组相互关联的类和一些独立的类组成。有一些代表基本数据类型的类,如字符串、字节数组、用于存储其它对象的集合类;一些代表系统信息的类,如日期类;还有一些代表系统实体的类,比如端口、线程、和进程.Application Kit框架包含实现图形的、事件驱动的用户界面需要的所有对象:窗口、对话框、按键、菜单、滚动条、文本输入框—这个列表还在不断增加。Application Kit由超过125个类和协议组成。所有的类最终都从Foundation框架的NSObject类继承而来, Application Kit帮助您处理所有的细节,它可以高效地进行屏幕描画、和营建设备及屏幕缓冲区进行通讯,在描画之前清除屏幕上的区域,以及对视图进行裁剪。
Foundation:

Application Kit: