最近开始学习OC 在学习OC之前 都是有专业基础
我这里对于细节不详细介绍,根据自身的学习稍微简单说一下
1、OC类
在Object C里面 基类是NSObject
OC和C语言的区别
(1)OC里面的关键字都是带@符号
(2)Oc 的预处理时#import C语言的预处理是#include
(3)OC的变量声明在{}里面
OC与C语言的共同之处就是声明文件和实现文件是分开的
2.OC的构造方法和description方法
(1)在OC里面可以写自己init,在构造方法里面可以写一些自己想要实现的东西,在进行输出一个对象时 用NSLog(“%@”,对象名),结果输出的是对象地址
(2)在输出对象的地址时看不懂输出的是输出的什么内容,为此可以重写description方法
(NSString*) description{
return @“111111”;
}
输出自己想要的东西 我们还可以用StringWithFormat 来进行格式化输出的字符串
3、self, 自动释放, 变量作用域
(1)self不可以随意写,如果不分清楚容易造成死循环,self在动态方法里面 谁调用self就指向谁, 在静态方法里面 self就是指当前类名
【self alloc】等价于【Student alloc】
(2) 在OC里有三种作用域 分别是@public @ protected @private 一般默认的是@protected
(3)OC系统内部自带的有自动释放 autorealease ,如果是自己写的 是需要【对象 release】
(4)任何指针类型都可以用(id)来表示
(5)OC的方法都是有+和-符号
(6)使用关键字new也可以进行内存分配 例如Student *stu= 【Student new】, 一般还是都会用 Student *stu=【【Student alloc】,init】
(7) 在进行成员变量的书写时 可以使用关键字@property 和 @ Synthesize 他们默认生成的成员变量都是私有的 在xcode4.5里面只用写@property 关键字 其他的都可以自动生成
4.@proterty 和@Synthesize
(1) 当成变量很多是 如果一一进行在.h文件中写get和set 会显得比较冗余 可以用@property进行代替
例如@property int age 就像当于(int)age;} (void) setAge:(int newAge);
(2) 同样 在.m文件中可以用@Synthesize 代替
例如@Synthesize age 就像当于(int)age{return age;} (void) setAge:(int newAge){age=newAge;}
(3)他们自动生成的变量是私有的