2011年1月25日
摘要: 这里主要侧重于集合类的深浅拷贝,主要事因为工作的时候遇到这个问题。有不足的地方欢迎指正,转载请注明。首先我们需要有这样的一个前提:[array addObject:obj];这样obj的引用计数会增加1,如果使用remove则obj的引用计数会减一。ios对集合的内存处理就是这样的。那么,假设obj只被array拥有:id temp = [array objectAtIndex:0];[array removeObjectAtIndex:0];如果你再要使用temp就会出错,因为这个时候obj已经被释放了。(提醒一下,如果用NSString做测试,要注意@“abc”是常量 :-) )由于在程序 阅读全文
posted @ 2011-01-25 13:21 scorpiozj 阅读(12127) 评论(1) 推荐(3) 编辑
  2011年1月21日
摘要: 转载请注明,谢谢。Ios4已经直接支持blocks,很有必要学习一下。在ios,blocks是对象,它封装了一段代码,这段代码可以在任何时候执行。Blocks可以作为函数参数或者函数的返回值,而其本身又可以带输入参数或返回值。它和传统的函数指针很类似,但是有区别:blocks是inline的,并且它对局部变量是只读的。Blocks的定义: int (^Multiply)(int, int) = ^(int num1, int num2) {return num1 * num2;};定义了一个Multiply的blocks对象,它带有两个int参数,返回int。等式右边就是blocks的具体实现 阅读全文
posted @ 2011-01-21 12:08 scorpiozj 阅读(11328) 评论(8) 推荐(3) 编辑
  2011年1月20日
摘要: FMDB提供了用o-c封装的访问sqlite3的方法,避免了在用O-c编程中夹杂C风格的代码(不是说不能使用,而是夹杂在一块代码风格不一致)。以下记录使用过程中的一些心得:1创建,插入,更新和删除:使用executeUpdate方法,而查询则用executeQuery2 插入的数据一律用oc中的对象类型:比如某列是double,插入的时候要用NSNumber对象3 查询结果的显示:用stringForColumn,dateForColumn等等4出错处理:[dbhadError]来判断是否有错;[dblastErrorCode], [dblastErrorMessage]来查看出错类型和说明5 阅读全文
posted @ 2011-01-20 15:04 scorpiozj 阅读(3075) 评论(0) 推荐(1) 编辑