object-c 语法

                

 objective-c是C语言的一个扩展集,主要由APPLE公司维护,是MAC系统下的主要开发语言。

1.NSlog()函数:

              例如:NSLog(@"zzz")        输出信息zzz;

注意:cocoa所有的函数,常量和类型名称都添加了NS前缀

2.双引号的前面的@表示这双引号中的字符串应该作为cocoa的NSString元素来处理。

例如:NSString *str = @"I am emily";意思是说定义一个值为“i am  emily”的字符串变量str

或者

NSString *test;

test=[NSString stringWithFormat:@"i'm %d years old!",23];

 

3.布尔类型BOOL:值为YES,NO;

4.%d表示输出整数

  %@表示输出NSString类型

%s表示输出字符串数组(char*);

它们也可以作为占位符;例如:

NSLog(@”drawing a circle at(%d %d %d %d) in %@”, bounds.x,bounds.y,bounds.width,bounds.height,colorName(fillName));

5.objective-c中的方括号:

a.       用于通知某个对象该做什么。

b.       方括号内第一项是对象,其余部分是你需要对象执行的操作。

c.       在objective-c中通知对象执行某种操作,称为发送消息。(也叫调用方法

6.方法解说:

-(void) setFillColor: (ShapeColor) fillColor; 

 //前面的短线表明这是方法声明(减号就是普通函数,加号就是静态函数)

 

  //短线后面(void)是方法的返回类型

 //接着setFillColor是方法名

//冒号后面是参数,其中(ShapeColor)是参数类型,fillColor是参数名

7.隐藏对象self对应于就是指this。

8.Objective-c不支持多继承,Super 关键字:调用该类的父类(超类);

9.NSArray类:可以存放任意类型的对象.

它有两个限制:

a. 它只能存储objective-c的对象,但不能存储C中的基本数据类型,如int , float, enum, struct等。

b.不能存储nil(对象的零值或NULL值);【因为在创建NSArray时,要在列表结尾添加nil代表列表结束。】

创建NSArray:

NSArray *array;

array=[NSArray arrayWithObjects:@"one",@"two",nil];       

10.NSString, NSMutableString区别:

NSString是不可变的,即一旦创建完成,就不能通过删除字符或添加字符的方式来改变它;

而NSMutableString是可变的。

11.NSNumber:用来包装基本数据类型如int ,char, float, bool;

12.NSValue:它可以包装任何类,NSNumber是它的子类

13.在cocoa中看到“CF”字样时,就表示它是苹果公司的Core Foundation 框架相关的内容。

14.内存管理

a.每个对象都有一个与之关联的引用计数(也叫保留计数);

b.NSAutoreleasePool:自动释放内存池:

创建:

NSAutoreleasePool *pool;

pool=[[NSAutoreleasePool alloc] init];

销毁:

[pool release];

注意:xcode自动生成的代码,销毁pool池时,使用的是[pool drain],drain方法只是清空释放池,但不销毁pool.所以在自己编写代码时还是使用release.

而且,drain只适用于MAC OS 10.4以上的版本,而release适用于所有版本。

只有在向某个对象发送autorelease消息时,该对象才会添加到NSAutoreleasepool中,才会被自动释放。

如:[car autorelease];

准则:

只有通过alloc, new和 copy方法创建的对象,才需要程序员负责向该对象发送release或autorelease消息。

而通过其他方法获得的对象,则默认为已经被设置为自动释放,所以不需要程序员做任何操作了

c.

当使用alloc, new 方法或通过 copy消息(生成接收对象的一个副本)创建一个对象时,对象的引用计数值被设为1;

给对象发retain消息时,增加该值;

发送release消息时,减少该值;

当一个对象的引用计数值变为0时,objective-c会自动向对象发送一条dealloc消息。

15.对象初始化

两种创建新对象的方法:

a.[类名 new]:

使用new创建新对象时,系统要完成两个步骤:

1.       为对象分配内存,即对象获得一个用来存放其实例变量的内存块;

2.       自动调用init方法,让该对象处于可用状态。

 

b.[[类名 alloc] init]:alloc在为对象分配空间的同时,将这块内存初始化为0;Init方法:初始化实例变量,使对象处于可用状态。[返回类型为id,  返回的值描述了被初始化的对象]

总结:这两种方法是等价的,但cocoa的惯例是使用后者。

16.

@property :表示声明了对象的属性。【这样就不用再写属性的访问器了。】

(他有copy, retain, readwrite, readonly等属性)

@synthesize:表示“创建该属性的访问器”

 

 

 

 

 

 



 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值