iPhone入门学习——Objective-C学习文档
2011-08-31 18:43
288 查看
iPhone入门学习——Objective-C学习文档
一.数据类型1.NSRange
typedef struct _NSRange {
NSUInteger location;
NSUInteger length;
} NSRange;
2.NSPoint,NSSize,NSRect
3.NSString
方法1:(类方法)stringWithFormat [NSString stringWithFormat
""]
方法2:length
方法3:isEqualToString [实例名1 isEqualToString:实例名2]
方法4:compare 可以带参数
方法5:hasPrefix hasSuffix
4.NSMutableString
方法1:(类方法)stringWithCapacity [NSMutableString stringWithCapacity:表示大小的数字]
方法2: appendString appendFormat
方法3: deleteCharactersInRange rangeOfString
5.NSArray
方法1:(类方法)arrayWithObject 逗号分隔,以nil结束
方法2:count objectAtIndex
6.NSMutableArray
方法1:(类方法)arrayWithCapacity
方法2:addObject removeObjectAtIndex
7.NSEnumerator
方法1
bjectEnumerator
reverseObjectEnumerator
方法2:nextObject
8.NSDictionary
方法1:(类方法)dictionaryWithObjectsAndKeys 接收对象和关键字交替的存储的系列,以nil结束
方法2:objectForkey
9.NSMutableDictionary
方法1:(类方法)dictionaryWithCapacity
方法2:setObject:forKey: removeObjectForKey
10.NSNumber
用来把基本数据类型包装成对象的形式
11.NSValue
可以包装任意值
12.NSNull
[NSNull null]表示空
二.内存管理
1.Cocoa内存管理规则
(1)当你使用new、alloc或copy方法创建一个对象时,该对象的保留计数器值为1。当不再使用该对象时,你要负责向该对象发送一条release或autorelease消息(用完后或者在dealloc方法中进行统一释放)。这样,该对象将在其使用寿命结束时被销毁。
(2)当你通过任何其他方法获得一个对象时,则假设该对象的保留计数器值为1,而且已经被设置为自动释放,因此就不需要执行任何操作来确保该对象被清理。
自动释放池:
NSAutoreleasePool *pool;
pool = [[NSAutoreleasePool alloc] init];
[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等,方式为比如
@property (retain,nonatomic) 类型 变量;
五.类别
1.基本知识
类别是为现有的类添加新方法的方式
2.格式
(1)声明:
@interface 类名(类别名)
方法列表
@end
(2)实现:
@implementation 类名(类别名)
方法实现部分
@end
3.类别局限性
(1)类别只能添加新方法,无法添加新的实例变量
(2)如果类别名和原来类中的方法产生名称冲突,则类别将覆盖原来的方法,因为类别具有更高的优先级
4.类别的作用
通过类别的方式,可以将类的实现分散到不同的文件里。
六.协议
1.基本知识
Objective-C的协议类似Java里的接口概念
2.格式
(1)声明:
@Protocol 协议名称
方法声明列表
@end
(2)对象采用协议:在@interface类声明的后面添加<协议名称>
@interface 类名 <协议名称>
(3)对象实现协议:在@implementation里实现协议的方法
@implementation 类名
实现协议的方法
@end
3.Objective-C2.0中协议的新特性
(1)@optional预编译指令:表示可以选择实现的方法
(2)@required预编译指令:表示必须强制实现的方法
from:http://bbs.51cto.com/thread-844683-1.html
相关文章推荐
- iPhone入门学习——Mac下的Subversion使用文档
- 韩顺平_php从入门到精通_视频教程_第14讲_盒子模型经典应用②_作业布置_学习笔记_源代码图解_PPT文档整理
- 【IPHONE开发-OBJECTC入门学习】对象的归档和解归档
- ffmpeg入门学习——文档4:创建线程
- 学习Objective-C: 入门
- Objective-C学习笔记和IOS入门
- angular入门学习文档之一
- iPhone开发入门--- 从C/C++语言到Objective-C语言
- Spring Boot 官方文档学习(一)入门及使用
- Hibernate参考文档学习笔记——Hibernate入门(三)
- Spring Boot 官方文档学习(一)入门及使用
- iOS开发入门教程 iPhone开发相关学习资料
- iPhone 开发 (七)Objective-C 学习
- mongodb 学习笔记之二 mongodb入门(数据库、文档和集合)
- Spring Boot 官方文档学习(一)入门及使用
- TDS学习文档——入门
- Hive基础学习文档和入门教程
- Spring Boot 官方文档学习(一)入门及使用
- iPhone开发入门(7)— 从C/C++语言到Objective-C语言
- 【学院官方整理】Python学习路线图-适合自学者从入门到项目开发(视频+文档) 干货提炼