文章列表
类别
利用objective-c的动态运行时分配机制,可以为现有的类添加新方法。
1.类别的声明
@interface NSString (NumberConvenience)
- (NSString *) lengthAsNumber;
@end //NumberConvenience
上面的声明表示:类别的名称是NumberConvenience,而且该 ...
一。对象初始化
两种创建对象的方法:a.[类名 new];b.[[类名 alloc] init];
这两种方法是等价的,不过通常的Cocoa惯例是使用b方法,而不是用a方法。
1.编写初始化方法
- (id) init{
/*实例变量所在的内存位置到隐藏的self参数之间的距离是固定的,
*如果从init方法返回一个新对象,则需要更新self,以便其后的任何实例变量的引用可以被映射到正确的内存位置
*初始化时init返回值为nil,表明未能初始化对象,那么if方法体内的代码不会执行,
*像这样将赋值和检查非零值合并起来是一种典型的C风格的方法。
*/
...
1.对象的生命周期包括诞生(通过alloc或new方法实现)、生存(接收消息和执行操作)、交友(借助方法的组合和参数)以 及当它们的生命结束时最终死去(被释放),当对象的生命周期结束时,它们的原材料(内存)将被回收以供新的对象使用。
2.引用计数:
当使用alloc、new方法或者通过copy消息(生成接收对象的一个副本)创建一个对象时,对象的保留计数器值被设置为1;
要增加对象的保留计数器值,可以给对象发送一条retain消息,
要减少对象的保留计数器值,可以发一条release消息。
当一个对象的保留计数器归0时自动向对象发送一条dealloc消息。dealloc是自 ...
一.集合家族
1.NSArray
NSArray是一个Cocoa类,用来存储对象的有序列表,
限制:a.只能存储Objective-C的对象,而不能存储C语言中的基本数据类型,如int,float,enum,struct或者NSArray中的随机指针。
b.不能在NSArray中存储nil(对象的零值或NULL值)。
//通过类方法arrayWithObjects创建一个新的NSArray,发送一个以逗号分隔的对象列表,
//在列表结尾添加nil代表列表结束(这就是不能在数组中存储nil的原因之一)
NSArray *array;
array = [NSArr ...
Cocoa由两个框架组成:FoundationKit和ApplicationKit。
ApplicationKit:存放了所有的用户接口对象和高级类
FoundationKit:有许多实用的面向数据的低级类和数据类型。
此框架存放在:/Developer/ADC Reference Libraty/documentaion/index.html中
1.示例代码:
import <Foundation/Foundation.h>
int main(int argc,const char *argv[]){
NSAutorealeasePoo ...
Object-c学习总结1.类的声明和定义
//创建类之前需要告知编译器对象的数据成员和它提供的特性,表示为新类Circle定义的接口。
@interface Circle:NSObject
{
ShapeColor fillColor;
ShapeRect bounds;
}
//下面是三个方法声明
//先行短线,是区别于函数原型和方法声明的标记,函数原型没有先行短线
//方法声明中使用了中缀符语法技术,方法的名称及其参数是合在一起的
//可以这样调用带一个参数的方法[circle setFillColor:kRedColor]
//调用两个参数的方法 [t ...