文件构造
OC分为2个文件 h,m文件
mm表示可以调用系统c++/oc clang++编译器
构造和析构
Object-c中没有构造函数和析构函数。
创建一个对象需要先为对象分配内存,然后调用初始化方法来初始化对象。
可以采用 重写 -(id)free来实现类中所有数据释放
类
+表示类的方法
-表示对象的方法
所有关键字都是用@开始
类声明使用@interface @end来声明
类实现使用@implementation @end实现
oc变量默认是Protected
oc函数全部都是public类型
变量必须定义在类{}之间的地方
所有OC类中,接口申明必须要带*
这里*即表示指针也表示引用
对象方法表示函数
类方法表示消息
凡是以init开头的都是构造函数
@property int count 等效
-(int) count;
-(void)SetCount:(int)newCount;
[NSString stringWithFormat@“%@“,a];
node方法只是alloc 和 init方法的组合体
oc中所有类对象必须动态申请,也就是说没有局部变量一说
oc中多了一个id类型,通过测试,id就是指针。32位机器上为4字节
引用
strong 强引用
其存亡直接决定了所指对象的存亡,如果不存在指向一个对象的引用,并且次对象不再显示列表中,则此对象会被从内存中释放
strong == retain
weak 弱引用
申明了一个可以自动nil化的弱引用
@property
1.可读性 readwrite readonly
默认readwrite
你的变量就会有get set方法
@sythesize
@sythesize count
-(int)count
{
return count;
}
-(void)setCount:(int)newCount
{
count = newCount;
}
面向对象
单继承
通过使用接口实现多继承
支持多态 抽象类
所有的函数都是虚函数
头文件 #import
oc中布尔类型是BOOL 值是yes no
id类型 oc中每个目标都可以表达位id类型
可以认为是NSObject* 或者 void*
nil表示NULL 一个目标指针
类的申明 @iterface @end
类的实现 @implementation @end
@import “xxxx.h”包含头文件
创建销毁oc对象
Dog* dog = [Dog alloc]
初始化构造函数
[dog init]
销毁对象
[dog release]
oc中变量必须定义在类{}之间的地方
oc缺省是@protected
oc里面的函数全是@public(用另外的方式实现private)
实现private:
直接将函数写在.m文件中
oc通过categories实现私有化
oc中类的申明必须带*号,
这里*即表示指针也表示引用
Dog *mydog