初学者必备:Objective-C学习文档

移动开发 iOS
Objective-C学习文档是本文要介绍的内容,主要介绍的有数据类型、内存的管理,对象,协议等一些内容,具体内容,来看本文详解。

Objective-C学习文档是本文要介绍的内容,主要介绍的有数据类型、内存的管理,对象,协议等一些内容,具体内容,来看本文详解。

一.数据类型

1、NSRange

  1. typedef struct _NSRange {  
  2. NSUInteger location;  
  3. NSUInteger length;  
  4. } NSRange; 

2、NSPoint,NSSize,NSRect

3、NSString

  1. 方法1:(类方法)stringWithFormat [NSString stringWithFormat:@""]  
  2. 方法2:length  
  3. 方法3:isEqualToString [实例名1 isEqualToString:实例名2]  
  4. 方法4:compare 可以带参数  
  5. 方法5:hasPrefix hasSuffix 

4、NSMutableString

  1. 方法1:(类方法)stringWithCapacity [NSMutableString stringWithCapacity:表示大小的数字]  
  2. 方法2: appendString  appendFormat  
  3. 方法3: deleteCharactersInRange  rangeOfString 

5、NSArray

  1. 方法1:(类方法)arrayWithObject 逗号分隔,以nil结束  
  2. 方法2:count  objectAtIndex 

6、NSMutableArray

  1. 方法1:(类方法)arrayWithCapacity  
  2. 方法2:addObject  removeObjectAtIndex 

7、NSEnumerator

  1. 方法1:objectEnumerator   reverseObjectEnumerator  
  2. 方法2:nextObject 

8、NSDictionary

  1. 方法1:(类方法)dictionaryWithObjectsAndKeys 接收对象和关键字交替的存储的系列,以nil结束  
  2. 方法2:objectForkey 

9、NSMutableDictionary

  1. 方法1:(类方法)dictionaryWithCapacity  
  2. 方法2:setObject:forKey: removeObjectForKey 

10、NSNumber

用来把基本数据类型包装成对象的形式

11、NSValue

可以包装任意值

12、NSNull

  1. [NSNull null]表示空 

二、内存管理

1.Cocoa内存管理规则

(1)当你使用new、alloc或copy方法创建一个对象时,该对象的保留计数器值为1。当不再使用该对象时,你要负责向该对象发送一条release或 autorelease消息(用完后或者在dealloc方法中进行统一释放)。这样,该对象将在其使用寿命结束时被销毁。

(2)当你通过任何其他方法获得一个对象时,则假设该对象的保留计数器值为1,而且已经被设置为自动释放,因此就不需要执行任何操作来确保该对象被清理。

自动释放池:

  1. NSAutoreleasePool *pool;  
  2. pool = [[NSAutoreleasePool alloc] init];  
  3. [pool release]; 

如果你打算在一段时间内拥有该对象(使用retain方法),则需保留它并确保在操作完成时释放它(用完后或者在dealloc方法中进行统一释放)。

(3)如果你保留了某个对象,则需要(最终)释放或自动释放该对象。必须保持retain方法和release方法的使用次数相等。

注:简单来说,如果使用了alloc,new或copy方法获得一个对象,则必须进行释放该对象操作。

三、对象初始化

1.基本知识

(1)Objective-C创建对象有两种方法:

[类名 new]:直接new一个新对象

[[类名 alloc] init]:先为对象分配内存空间,再为其初始化

(2)在Cocoa中,对象分配和初始化是两个分离的操作:来自NSObject的类方法alloce为对象分配一块内存并将其清0;实例方法init用于获得一个对象并使其运行

2.便利初始化函数

一个类中有的多个初始化函数,即多个以init开头的方法。

3.指定初始化函数

类中的某个初始化方法被指派为指定初始化函数,该类的所有初始化方法使用指定初始化函数执行初始化操作。子类使用其超类的指定初始化函数实现超类的初始化。

四、特性(property)

1、基础知识

特性的预编译指令为@property,作用是自动声明属性的setter和getter方法,因此就不必再有为每个属性都写的访问器方法而产生的冗长代码了。

即使用预编译指令@property通知编译器为对象的属性的setter和getter自动生成方法声明。

同时使用@synthesis预编译指令通知编译器生成对应的访问器方法。

2、格式

在.H文件中声明:@property 类型 变量名;

在.M文件中实现:@synthesis 变量名;

3、相关的点语法

访问属性的setter和getter方法有两种方式:

(1)[对象 属性方法]:Objective-C特有的正规的[ ]方式

(2)对象.属性方法:和其他语言类似的.方式

4、特行扩展

在特性的声明里可以指定属性的一些要求,比如copy,retain,nonatomic,readwrite(默认),readonly等,方式为比如

  1. @property (retain,nonatomic) 类型 变量; 

五、类别

1、基本知识

类别是为现有的类添加新方法的方式

2、格式

(1)声明:

  1. @interface 类名(类别名)  
  2. 方法列表  
  3. @end 

(2)实现:

  1. @implementation 类名(类别名)  
  2. 方法实现部分  
  3. @end 

3、类别局限性

(1)类别只能添加新方法,无法添加新的实例变量

(2)如果类别名和原来类中的方法产生名称冲突,则类别将覆盖原来的方法,因为类别具有更高的优先级

4、类别的作用

通过类别的方式,可以将类的实现分散到不同的文件里。

六、协议

1、基本知识

Objective-C的协议类似Java里的接口概念

2、格式

(1)声明:

  1. @Protocol 协议名称  
  2. 方法声明列表  
  3. @end 

(2)对象采用协议:在@interface类声明的后面添加<协议名称>

  1. @interface 类名 <协议名称> 

(3)对象实现协议:在@implementation里实现协议的方法

  1. @implementation 类名  
  2. 实现协议的方法  
  3. @end 

3、Objective-C 2.0中协议的新特性

(1)@optional预编译指令:表示可以选择实现的方法

(2)@required预编译指令:表示必须强制实现的方法

小结:初学者必备:Objective-C学习文档的内容介绍完了,希望本文对你有所帮助!

责任编辑:zhaolei 来源: 网络转载
相关推荐

2011-08-17 12:03:36

Objective-C

2011-08-05 14:16:47

Objective-C 变量 方法

2011-08-10 19:16:50

Objective-C变量

2011-08-10 19:01:18

Objective-C

2011-08-15 17:06:01

Objective-CNSLog

2011-08-04 16:46:03

Objective-C 声明

2011-08-22 15:31:35

Objective-C协议

2011-08-29 15:45:59

Lua函数

2011-08-23 14:01:03

LUA

2011-08-01 11:49:05

Objective-C

2011-08-24 17:19:20

Lua源文件

2011-08-11 10:50:08

xcode调试文件

2011-08-24 09:54:05

Lua字符春交互

2010-05-12 17:36:44

MySQL初学者

2020-08-16 13:10:46

TensorFlow深度学习数据集

2011-09-08 10:38:37

Widget

2011-08-10 16:44:56

iPhone代理设计模式

2020-09-08 19:03:41

Java代码初学者

2010-01-15 19:05:42

学习C++

2009-09-28 09:45:00

CCNA学习经验CCNA
点赞
收藏

51CTO技术栈公众号