---OC的一些基本使用
OC的基本程序:
#import <Foundation/Foundation.h>
int main()
{
// NSLog输出内容会自动换行
NSLog(@"hello world!!!");
return 0;
}
1.#import的用途:
1> 跟#include一样,拷贝文件的内容
2> 可以自动防止文件的内容被重复拷贝
2.#import <Foundation/NSObjCRuntime.h>
NSObjCRuntime.h中有NSLog函数的声明
3.Foundation框架头文件的路径
1> 右击Xcode.app --> 显示包内容
2> Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/System/Library/Frameworks/Foundation.framework
4.主头文件
1> 主头文件:最主要的头文件,名字一般跟框架名称一样,包含了框架中的所有其他头文件
2> Foundation框架的主头文件名称就是Foundation.h
3> 只需要包含Foundation框架主头文件,就可以使用整个框架的东西
5.运行过程
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
---OC与C的一些区别
1.关键字:基本上所有关键字都是以@开头。
2.字符串以@开头:比如@"Hello"是oc中的字符串。
3.oc比c语言多了BOOL(yes\no)类型
4.nil相当于c语言中的NULL,也就是0。
5.输出方式:NSlog(@"Hello");NSlog(@"age is %i",27);
6.NSlog输出内容会自动换行。
#import的用途:
1.跟#include一样,拷贝文件的内容
2.可以防止文件的内容被重复拷贝多次
---BOOL
int main()
{
BOOL b = YES;
BOOL b2 =NO;
BOOL b3 =1;// YES
BOOL b4 =0;// NO
NSlog(@"%i",b);
return 0;
}
BOOL的本质:typedef signed char BOOL;定义了signed char为BOOL类型
---面向对象和面向过程思想
1.类的设计:
1>类名
*类名的第一个字母必须是大写
*不能有下划线
*多个英文单词,用驼峰标识
2>属性
3>行为(功能)
2.植物大战僵尸的僵尸
1>僵尸
*类名:Zoombie
*属性:life,speed,gongjili
*行为:walk,bite,die,
3.雷电的飞机
*类名:Plane
*属性:life,gongjili,speed,bombCount
*行为:fly,bomb,shoot,die
4.电脑
*类名:Computer
*属性:band,expireDate
*行为:open,close
---OC中类的描述
/*类名:Car
属性:轮胎个数,时速
行为:跑
*/
//因为使用了NSObject
#import<Foundation/Foundation.h>
//完整地写一个函数:函数的声明和定义(实现)
//完整地写一个类:类的声明和实现
//1.类的声明
// 声明对象的属性、行为
//NSObject目的是:让Car这个类具备创建对象的能力
@interface Car :NSObject
{//用来声明对象属性(实例变量\成员变量,默认会初始化0)
//@public可以让外部的指针间接访问对象内部的成员变量
@public
int wheels;//轮胎个数
int speed;//时速(xxkm/h)
}
// 方法(行为):方法名、参数、返回值(声明、实现)
//只要是OC对象的方法,必须以减号 - 开头
//OC方法中任何数据类型都必须用小括号()括住
//OC方法中的小括号():括住数据类型
-(void) run;
@end
//2.类的实现
//用来实现@interface中声明的方法
@implementation Car
//方法的实现(说清楚方法里面有什么代码)
- (void) run
{
NSlog(@“车子跑起来了");
}
@end
int main()
{
//在OC中,想执行一些行为,就写上一个中括号[行为执行者 行为名称]
//利用类来创建对象
//执行了Car这个类的new行为来创建新对象
//定义了一个指针变量p,p将来指向的是Car类型的对象
//[Car new]每次都会创建出一个新对象,并且会返回新对象本身(新对象地址)
Car *p = [Car new ];
//给p所指向对象的wheels属性赋值
p->wheels = 4;
p->speed = 250;
//给p所指向对象发送一条run消息
[p run];
NSlog(@"车子有%d个轮子,时速为:%dkm/h",p->wheels,p->speed);
return 0;
}