123456

 

2011年12月29日

deleget

摘要: Delegate模式顾名思义,就是两个对象之间的代理关系。形象地说,即某个对象不愿意自己去干一件事,而是委托另外一个对象作为自己的代理,来做这件事,代理对象把结果返回给委托者对象。一个对象可以拥有多个代理.下面用一个例子进一步说明了这个关系,这个是 Cocoa教程里的例子:比如有一个NSWindow对象,与其代理对象间实现了一个包含叫做windowShouldClose方法的通信协议。当用户点击窗口角上的关闭按钮时,NSWindow对象向其代理对象发送windowShouldClose消息,询问是否可以关闭窗口?代理对象根据窗口的内容已经保存与否等情况,向窗口对象返回是否应该关闭的布尔值,据此 阅读全文

posted @ 2011-12-29 17:43 hgy413 阅读(129) 评论(0) 推荐(0) 编辑

赋值的三种写法

摘要: 第一种: retain 然后 release:- (void)setFoo:(NSCalendarDate *)x { [x retain]; [foo release]; foo = x; }retain在release之前是非常重要的.如果你颠倒了它们的循序, 当x 和foo指向同一个对象, 而该对象的retain计数为1时. release将会把这个对象释放了. 评价: 如果是指向同一个对象, retain和release是多余的.第二种:- (void)setFoo:(NSCalendarDate *)x { if (foo != x) { [foo release]; foo = [ 阅读全文

posted @ 2011-12-29 14:05 hgy413 阅读(752) 评论(0) 推荐(0) 编辑

设置垃圾回收

摘要: xcode-project->Edit Project Settings搜索中输入gar,就看到了Objective-C Garbage Collection 阅读全文

posted @ 2011-12-29 13:40 hgy413 阅读(109) 评论(0) 推荐(0) 编辑

NSCalendarDate

摘要: +(id) calendarDate;该方法创建了当前日期和时间以及默认格式的NSCalendarDate对象.它的时区为机器设置好的时区.该方法为class method+(id)dateWithYear:(NSInteger)year month:(NSUInteger)month day.......该对象使用了参数指定的值来初始化. year 使用公元记年比如2009. month为1到12. day为1到31.hour为0到23.minute为0到59.second为0到59. (NSCalendarDate *)dateByAddingYears:(int)year months: 阅读全文

posted @ 2011-12-29 10:44 hgy413 阅读(163) 评论(0) 推荐(0) 编辑

导航