详解Objective-C学习笔记使用教程

Objective-C的学习笔记是本文要介绍的内容,主要来学习Objective-C的属性特点、NSAutoreleasePool的了解、Emacs的移动快捷键+Xcode常用键的内容,来看详细内容讲解。

1、Objective-C 属性特性(assign , retain , copy , readonly , readwrite)

assign:指定setter方法用简单的赋值,这是默认操作。你可以对标量类型(如int)使用这个属性。你可以想象一个float,它不是一个对象,所以它不能retain、copy。

retain:指定retain应该在后面的对象上调用,前一个值发送一条release消息。你可以想象一个NSString实例,它是一个对象,而且你可能想要retain它。

copy:指定应该使用对象的副本(深度复制),前一个值发送一条release消息。基本上像retain,但是没有增加引用计数,是分配一块新的内存来放置它。

readonly:将只生成getter方法而不生成setter方法(getter方法没有get前缀)。

readwrite:默认属性,将生成不带额外参数的getter和setter方法(setter方法只有一个参数)。

2、了解NSAutoreleasePool

NSAutoreleasePool是一个存放对象的集合,添加到NSAutoreleasePool的对象能够被自动释放。

自动释放其实就是在NSAutoreleasePool被清空或是销毁时向池里所有的对象发送一条release消息。

对象不会自动入池,只有当对象发送一条autorelease消息时才会被添加到当前的池中。可以想象池在一个栈中,当前池在栈顶,每创建一个新的池,就压入,使用drain或者release时,就弹出。

当有对象是Autorelease的对象,而当前没有NSAutoreleasePool的话,就会提示内存泄漏(Just Leaking)。一般来说,只要不是用new、alloc、copy方法创建一个对象的话,我们就假设该对象的引用计数为1,而且被添加到NSAutoreleasePool中。

如下面代码就会提示内存泄漏:

NSDate *date = [NSDate date];    


NSLog(@"%@",[date description]);    


return 0;    


/*   


 objc[3466]: Object 0x1001149c0 of class __NSDate autoreleased    


 with no pool in place    


 - just leaking - break on objc_autoreleaseNoPool() to debug   


*/    



NSDate *date = [NSDate date];  



NSLog(@"%@",[date description]);  


return 0;  


/*  


 objc[3466]: Object 0x1001149c0 of class __NSDate autoreleased   


 with no pool in place   


 - just leaking - break on objc_autoreleaseNoPool() to debug  


*/  

关于drain和release的问题可以在此处找到说明。在非GC环境下,两者的作用是相同的。否则你没有理由去使用release,给NSAutoreleasePool发送drain会提醒GC处理池中的对象。

3、Emacs的移动快捷键+Xcode快捷键

虽然不想在学Emacs的使用,但为了在Mac下使用的更顺畅,还是记录下来,因为这些xcode快捷键键可以在Xcode、TextEdit、Safari的URL地址栏等处使用。

control-F    向右边(Forward)移动  


control-B    向左边(Backward)移动  


control-N    向下(Next)移动一行  


control-P    向上(Previous)移动一行  


control-K    删除(Kill)光标后的代码  


control-A    移动到行首(同command+左箭头)  


control-E    移动到行尾(同command+右箭头)  


control-T    转置(Transpose,交换)光标两边的符号  


control-D    删除(Delete)光标右边的字符  


control-L    将插入点置于窗口正中(不解) 

Xcode快捷键:

相关推荐