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

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

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中。

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

  1. NSDate *date = [NSDate date];    
  2. NSLog(@"%@",[date description]);    
  3. return 0;    
  4. /*   
  5.  objc[3466]: Object 0x1001149c0 of class __NSDate autoreleased    
  6.  with no pool in place    
  7.  - just leaking - break on objc_autoreleaseNoPool() to debug   
  8. */    
  9. NSDate *date = [NSDate date];  
  10. NSLog(@"%@",[date description]);  
  11. return 0;  
  12. /*  
  13.  objc[3466]: Object 0x1001149c0 of class __NSDate autoreleased   
  14.  with no pool in place   
  15.  - just leaking - break on objc_autoreleaseNoPool() to debug  
  16. */  

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

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

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

  1. control-F    向右边(Forward)移动  
  2. control-B    向左边(Backward)移动  
  3. control-N    向下(Next)移动一行  
  4. control-P    向上(Previous)移动一行  
  5. control-K    删除(Kill)光标后的代码  
  6. control-A    移动到行首(同command+左箭头)  
  7. control-E    移动到行尾(同command+右箭头)  
  8. control-T    转置(Transpose,交换)光标两边的符号  
  9. control-D    删除(Delete)光标右边的字符  
  10. control-L    将插入点置于窗口正中(不解) 

Xcode快捷键:

  1. command+[    左移代码块  
  2. command+]    右移代码块  
  3. Tab                   接受代码提示  
  4. Ese                   显示代码提示  
  5. Control+.         循环浏览代码提示  
  6. Shift+Control+.  反向浏览代码提示  
  7. Control+/            移动到代码提示的下一个点位符  
  8. Command+Control+S    创建快照 

小结:关于Objective-C的属性特点、NSAutoreleasePool的了解、Emacs的移动快捷键+Xcode常用键的内容的内容介绍完了,希望通过本文的学习能对你有所帮助!

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-08-05 14:03:39

Objective-C 对象 模板

2011-07-27 16:36:03

iphone Objective- 静态库

2011-08-04 14:58:37

Objective-C Cocoa NSString

2011-08-04 11:04:14

Objective-C 面向对象 继承

2011-08-04 10:38:17

Objective-C 预处理程序

2011-08-17 11:05:22

Objective-C方法

2011-08-15 16:09:44

Cocoa对象Objective-C

2011-07-25 11:02:29

Objective-C Xcode 标签

2011-07-25 10:30:41

Objective-C Xcode 重构

2011-07-25 10:14:13

Objective-C Xcode

2011-07-29 16:16:30

Objective-c block

2011-08-17 10:58:59

Objective-C构造函数

2011-07-08 13:49:46

Objective-C UUID

2011-07-22 15:42:39

Objective-C UIView 内存

2011-08-18 15:19:28

XcodeObjective-C语法

2011-05-11 14:06:49

Objective-C

2013-08-21 14:57:42

objective-c问题

2011-07-18 16:36:51

Objective-C XCode

2015-10-08 10:01:10

Objective-CLayout

2014-04-01 10:50:42

iOS开发runtimeObjective-C
点赞
收藏

51CTO技术栈公众号