这一周主要看完了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对象如选取器。词典便是一个典型的数组对象。