OC基本语法及知识要点汇总

来源:互联网 发布:火影忍者佐助的刀淘宝 编辑:程序博客网 时间:2024/05/23 02:01
在c语言中 我们在控制台输出信息是用printf()   Java语言则是 System.out.println() 而Objective-C  则是用 NSLog();

1 减号(或者加号) 

减号表示一个函数、或者方法、或者消息的开始,怎么说都行。

不过在Objective-C里面没有public和private的概念,你可以认为全是public。 

而用加号的意思就是其他函数可以直接调用这个类中的这个函数,而不用创建这个类的实例。

2 中括号 

中括号可以认为是如何调用你刚才写的这个方法,通常在Objective-C里说“消息”。 

比如C#里你可以这么写: 

this.hello(true); 

在Objective-C里,就要写成: 

[self hello:YES];

1、#import    引入一次  (注意:在与c++共用的文件里,   c++用到的头文件要写到,h文件里,oc用到的头文件写到.mm文件里。。)

2、@interface等等



创建类:

头文件里:

@interface Kids: NSObject {

NSString *kidName;

NSString *kidAge;

}

-(BOOL) isCaughtKid:;

@end

.m实现文件里

#import “kids.h”

@implementation Kids

-(void) init {

kidName=@”mykid”;

kidAge=@”15”;

}

-(BOOL) isCaughtKid:{

return YES;

}

@end

问题三、一个方法如何传递多个参数? 

一个方法可以包含多个参数,不过后面的参数都要写名字。

多个参数的写法 

(方法的数据类型) 函数名: (参数1数据类型) 参数1的数值的名字 参数2的名字: (参数2数据类型

) 参数2值的名字 …. ;

举个例子,一个方法的定义:

-(void) setKids: (NSString *)myOldestKidName secondKid: (NSString *) mySecondOldestKidName thirdKid: (NSString *) myThirdOldestKidName;

实现这个函数的时候:

-(void) setKids: (NSString *)myOldestKidName secondKid: (NSString *) mySecondOldestKidName thirdKid: (NSString *) myThirdOldestKidName{

大儿子 = myOldestKidName;

二儿子 = mySecondOldestKidName;

三儿子 = myThirdOldestKidName;

}

调用的时候:

Kids *myKids = [[Kids alloc] init];

[myKids setKids: @”张大力” secondKid: @”张二力” thirdKid: @”张小力”];



1、 id: 

Objective-C有一种比较特殊的数据类型是id。你可以把它理解为“随便”。 

在Objective-C里,一切东西都是指针形式保存,你获取到的就是这个对象在内存的位置。那么id就是你知道这个位置,但是不知道里面是啥的时候的写法。

2、 同一个数组可以保存不同的对象:

比如一个数组NSArray,这种数组里面可以保存各种不同的对象,比如这个数组里: 

myArray <—-| 

                       0: (float) 234.33f

                       1: @”我是个好人”

                       2: (NSImage *)  

                       3: @”我真的是好人” 

这是一个由4个东西组成的数组,这个数组包括一个浮点数,两个字符串和一个图片。

3、BOOL,YES,NO:

YES是1,NO是0,BOOL本身就是个char。

4、IBOutlet、IBAction是啥玩意,总能看到。

这两个东西其实在语法中没有太大的作用。如果你希望在Interface Builder中能看到这个控件对象,那么在定义的时候前面加上IBOutlet,在IB里就能看到这个对象的outlet,如果你希望在Interface Builder里控制某个对象执行某些动作,就在方法前面加上(IBAction)。 

而这两个东西实际上和void是一样的。

5、nil。

Objective-C里的NULL(空)就这么写,表示空指针。

6、为什么是@”字符串”而不是”字符串”

”字符串”是C的字符串,@”"是把C的字符串转成NSString的一个简写.
在需要NSString的地方才需要这个转化,例如NSLog里面.
在需要C string的地方,还是用”字符串”的.

另外,@”"这个转换是不支持中文的.例如NSLog(@”字符串”); 是一定输出不了中文的.。
0 0