Objective C 的一些零碎知识

来源:互联网 发布:单片机常用c语言 编辑:程序博客网 时间:2024/04/30 15:12

1.self 是一个指针  该指针指向当前类的对象

super 只是一个编译器符号 ,不是指针 ,表示当前对象调用父类的方法.

super的功能就是让当前对象地址去调用父类中方法


2.成员变量的作用域 :类内的减方法可以调用   

类方法不能使用成员变量,因为类方法和具体的对象无关, 但减方法和对象有关,必须要有一个对象指针指向一个合法对象。


3.description 方法

NSLog(@"dog:%@",dog);

这个时候打印对象  会给dog 指针指向的对象发送一个 description ,也就是说 会自动调用 [dog description]

如果没有实现description,那么就打印对象指针。


4.nonatomic非原子操作 (不考虑线程安全)

atomic  原子操作,考虑线程安全,会加锁。

 

5.readwrite:读写是指代的是生成settergetter方法

readonly:只会生成getter方法不会生成setter方法

assgin  :直接赋值


 6.三种访问控制(作用域)

@private//私有的:在类内-开头的方法中可以直接使用,类外的函数不能直接使用但是可以通过类中的方法间接使用;子类不能直接使用父类私有的成员变量但是可以间接使用   

@protected//(默认)受保护的:在类内-开头的方法中可以直接使用,类外的函数不能直接使用但是可以通过类中的方法;子类可以直接使用父类受保护的成员变量

 @public//共有的:类内-方法 和类外都可以直接使用


7.OC没有私有方法  OC的所有方法都是公有的:如何实现类似的私有方法:那么就是在头文件不声明,通过在类的实现部分写一个匿名类别,在匿名类别中进行声明,这样的话类外面就看不到类中的方法相当于私有,但不是真正的私有。


8.

#include  包含头文件(包含的头文件必须加 条件编译)

#import 导入头文件(不需要 加条件编译)  只导入一次


9.动态就是运行时  runTimeoc的方法只有在运行时才检查对象指针指向的对象所属的类中这个方法有没有实现实现了那么就调用,没有实现去父类找,依次类推,最终找不到崩溃)

10.黄金法则

当我们使用alloc、retain、new 、copy  mutableCopy 开头的方法 把对象地址赋给一个新的指针变量    当这个新的指针变量  用完之后可以使用release   或  autorelease


11.set方法

- (void)setRoom:(chatRoom*)room{

if(room != _room){

[_room release];

_room = [room retain];

}

12.oc的字符串转化为SEL类型

SEL actionSel =NSSelectorFromString(action);



0 0