objective-c中的特别地方

   这一周主要看完了objective-c,objective-c是c的超集,所以一般的语法与c差不多,但还是有很多的不一样。

 1。 objective-c含有类,对象,方法的概念。这些对于熟悉面向对象的同学都很亲近,但是在其中也有些不同的地方。objective-c对类的声明是在@interface部分,实现是在@implementation部分。在@interface部分一般格式为:@interface NewclassName:ParentName <协议部分 >

{
   members

}

methods;

@end 

其中协议主要是如果你在执行某项操作的需要,必须遵从的协议。还有一点就是在类中可以不用写那些变量的获取与设置方法,objective-c自带了一种合成存取器,只需要在methods前加入 “@property 数据类型 变量名即可”。这样我们可以直接对成员变量进行赋值与获取。

 

  2。在数据类型方面,objective-c加入了一种很特殊的类型:id类型。 id类型可以存储任何类型的对象。id类型在处理对事件的处理方面很重要,例如我们处理按钮被按下时,此时传递给用户的一个信号sender就是一个id类型,对id类型可以进行不同的对象的转换,从而可以进行对某项特定的元素的处理。

 

  3。for的特殊语法。objective-c中有一种很特殊的for循环的语法。如定义了一个类的对象A,B是一个动态的数组对象,并且A是B的元素则可以用for(A in B)进行循环,对数组B中的所有A对象进行遍历。

 

  4。对象方面,objective-c提供了很多的对象,对象都是以NS开头的,如NSNumber,NSInteger等等,对象可以发送信息,因此在进行设计iphone程序的时候很重要。一般不能将数据直接存储到对象中,必须创建这些数据的对象,可以使用NSNumber对象创建该类型的对象,例如要创建NSInteger的对象,可以先创建NSNumber的对象:intnumber=[NSNumber numberWithInteger:10],然后将此对象转化为NSInteger类型的对象:[intnumber integerValue]。在此,创建NSNumber对象的一般格式为[NSNumber numberWith数据类型:i ];而进行转换的格式为:[NSNumber对象名 需要的对象类型+Value]。创建了任何对象你都可以用NSLog (@“%@”,对象名)进行对该对象的输出。对象又有可变对象与不可变对象的区别。创建可变对象的一般格式为:NSMutable数据类型 名称。不可变对象的内容不能不可以更改,例如如果你想对一个字符串进行连接,删除某些字符等操作,就必须创建可变的字符串对象。在iphone的控件中很多都是NSArray对象如选取器。词典便是一个典型的数组对象。

  5.在objective-c编程中对内存的管理是十分重要的。如果内存泄露了可能会引起很严重的后果。虽然可以创建一个内存池将对象添加到内存池中,然后释放池的时候会自动的释放在池中的对象,但是有可能在多个地方使用到了该对象,因此你必须记住释放在该地方的对象,因为该对象的引用计数不止为1,而释放池的时候对象的引用计数只减少1,如果未释放到计数为0,则会造成内存的泄露。因此你可以用对象的retainCount属性来观察引用计数,从而精确的释放内存。

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值