1.NS的意思。
Ns代表这些对象是在cocoa框架下的,例如NSString,NSLog等。(%lu 代表整数)
2.BOOL的含义
BOOL就是8byte的一个变量,1是YES,0是NO
大于1的数字被赋值给BOOL之后,实际上是把该数十六进制的最低位赋值给了该变量例如0F3331,则结果就是1.
3.比较程序,与BOOL有关
#import <Foundation/Foundation.h>
//return NO if the two integers have the same value
//YES otherwise
BOOL areIntsDifferent(intthing1,int thing2)
{
if(thing1==thing2)
{
return(NO);
}else{
return(YES);
}
}
//return the human-readable value YES or NO
//注意这里由于返回值是NSString,所以必须用指针函数
NSString* boolString(BOOLboolToDetect)
{
if(boolToDetect==YES)
{
return(@"YES");
}else{
return(@"NO");
}
}
//main
int main(int argc,const char *argv[])
{
BOOL areTheyDifferent;
areTheyDifferent=areIntsDifferent(5,4);
NSLog(@"are%d and %d different? %@",5,4,boolString(areTheyDifferent));
areTheyDifferent=areIntsDifferent(4,4);
NSLog(@"are%d and %d different? %@",4,4,boolString(areTheyDifferent));
return 0;
}
4.typedef struct的例子以及含义
typedef struct{
int age;
} Animal;
生成变量的时候直接 Animal dog;
(与java中的类类似)
5.struct 的定义,enum的定义,例如:
typedef struct{int x,y,width,height;} ShapeRect;
typedef enum {red,yellow,green} Color;
注意标点符号的使用和大小写。
6.An id is a generic type that’s used to refer to any kind of object
7.函数的使用,在java中称之为call method,而在OC中称之为send message,格式也有所不同。Java 版本human.eat() 而OC版本,[human eat].关于这种差异的理解:发送eat给human这个object可以理解为,eat是一条消息,如果human收到之后能识别出来,说明human这个对象是human 这个class的实例化。
8.@interface 给出类的信息用于创建该类的对象。
9.-(void) draw;表示该类支持这个方法
10.-(void) eatFood: (int) number;这里类似java的public void eatFood(Int number);
11.一个类的声明方式:
@interface Car:NSObject
{
@private
Color windowsColor;
Height carHeight;
}
-(void) run;
-(BOOL) isRunning;
-(void) go:(Road) theRoadToBeijing;
@end // Car
12.用写的类来产生一个对象的方法
@implementation Car
-(void) run
{
NSLog(@"The Car is running!");
}
-(BOOL) isRunning
{
//do something
}
-(void) go: (Road) roadA
{
//go to road A
}
13.类的声明以及使用的方法:
#import <Foundation/Foundation.h>
typedefenum{twelve,thirteen,fourteen} Speed;
@interface Car : NSObject
{
Speed maxSpeed;
}
-(void)setSpeed:(Speed) maxSpeed;
@end// Car
@implementation Car
-(void) setSpeed:(Speed) theSpeed
{
maxSpeed=theSpeed;
NSLog(@"thirteen");
}
@end
int main(int argc,const char * argv[])
{
@autoreleasepool {
// insert code here...
id car[2];
car[1]=[Carnew];
[car[1]setSpeed:fourteen];
}
return 0;
}