BOOL类型的本质:
typedef signed char BOOL;BOOL类型的变量有2种取值:YES、NO,BOOL的输出(当做整数来用)
#import <Foundation/Foundation.h> BOOL test(BOOL mybool) { return NO; } int main() { BOOL b = YES; BOOL b2 = NO; BOOL b3 = 1; BOOL b4 = 0; NSLog(@"%d",test(b)); return 0; }
1.#import的用途:
1> 跟#include一样,拷贝文件的内容
2> 可以自动防止文件的内容被重复拷贝
#import <Foundation/NSObjCRuntime.h>
NSObjCRuntime.h中有NSLog函数的声明
主头文件
1> 主头文件:最主要的头文件,名字一般跟框架名称一样,包含了框架中的所有其他头文件
2> Foundation框架的主头文件名称就是Foundation.h
3> 只需要包含Foundation框架主头文件,就可以使用整个框架的东西
运行过程
1> 编写OC源文件:.m、.c
2> 编译:cc -c xxx.m xxx.c
3> 链接:cc xxx.o xxx.o -framework Foundation
(只有用到了Foundation框架才需要加上-framework Foundation)
4> 运行:./a.out
类的声明
#import <Foundation/Foundation.h> @interface Car : NSObject { @public int wheel; int speed; } - (void)run; @end @implementation Car -(void)run { NSLog(@"有%d个轮子的车子以%d的速度跑起来了",wheel,speed); } @end int main() { Car *c = [Car new]; c->wheel = 4; c->speed = 500; [c run]; return 0; }
@public
@public可以让Car对象的wheels和speed属性被外界访问
NSObject
NSObject的目的是让Car类具备创建对象的能力
成员变量不能在{}中进行初始化、不能被直接拿出去访问 方法不能当做函数一样调用
成员变量\方法不能用static等关键字修饰,别跟C语言混在一起 类的实现可用写在main函数的后面,主要在声明后面就行了
#import <Foundation/Foundation.h> @interface Person : NSObject @end @implementation Person @end @interface Car : NSObject { @public int wheels; int speed; } -(void)run; -(void)fly; @end int main() { Car *c1 = [Car new]; c1->wheels = 4; c1->speed = 500; [c1 run]; [c1 fly]; return 0; } @implementation Car -(void)run { NSLog(@"%d个轮子%d速度的车跑起来了",wheels,speed); } -(void)fly { NSLog(@"%d个轮子%d速度的车飞起来了",wheels,speed); } @end