OC基础笔记1

来源:互联网 发布:犀牛软件破解码 编辑:程序博客网 时间:2024/04/30 06:28
1,类创建新对象时,是返回地址的,所以要用一个和类相关的指针来接收,这个指针的名字,就是对象的名字。本质和结构体一样。
2,nslog暂时不支持输出char类型的中文形式,会输出空白
3,类方法,直接用类来调用,而且不需要承接地址,因为不返回地址,直接承接返回值就可以了,但类方法中,不得含有属性变量,不需要用到属性变量的方法,都可以换为类方法,因为类方法不能访问成员变量
4,类创建对象时返回的地址,是类的第零个属性isa的地址,所以可以指向这个地址去改变它的属性
5,牢记类方法和对象方法的调用规则区别,对象方法必须新建对象来调用,而类方法可直接使用类来调用
6,当任何对象被创建时,系统在堆中分配一块给这个对象,返回一个地址,通常我们需要一个指针去指向这个地址,保存在栈当中
7,类对象,是成立了一个类之后,系统自动生成的一个对象,含有类所有的方法列表,新建的实例对象里是不包含方法的,只能通过对象的isa指针去类对象里找方法
8,
9,对象不仅可以做参数,还可以做返回值类型:-(Gun*)hah:(Hun*)heh;
10,修改项目的制作模板:(xcode---显示包内容---contents---Developer---Library--Templates---Project---Mac---找出要修改的文件类型---在找到plist文件进去修改)
11,修改新建文件的顶头信息:在选Project的地方选另一个File template--Source---Cocoa Class.xctemplate---NSObjecObjective-C---有两个文件--进去修改就行
12,类本身也是一个封装,封装着成员变量和方法,没有@public的话,所有的变量都是属于封闭式的不能被直接访问的,要用getset方法
13,当创建的方法中没有用到属性信息时,还可以新建一个没有地址名字的对象去调用它,匿名对象去调用,直接将接受到的对象地址来调用该方法
14,添加别人的自定义代码块:个人---资源库---Developer---Xocde---UserData---CodeSnlppets---就能看到自定义的所有代码---把被人的拉进去就行了
15,点语法是编译器的特性,翻译时会自动(转换成) 调用的是对象的geisei方法
16,self只是代表当前调用者,不管对象是谁,只要不违反对象方法和类方法的调用规则就行,super也一样
17,当子类继承父类的时候,重写方法时如果含有父类的方法,那么可以通过super直接调用父类的方法,不必重复


18,多态,一种事物的多种形态。没有继承就没有多态。即使是父类的指针指向子类的指针,依然能找到子类的方法,是动态检测的,虽然编译时是按照父类中的方法去寻找,但最终运行时,是以对象地址为依据的
19,多态的特点,可以通过父类指针调用它指向的任何一个子类的方法,要求:父类中必须有同名的方法才能编译通过。用父类做形参的方法可以传递子类对象,做到一个方法多个同类使用。例如:动物这个类的做为一个形参,可传递猫类或狗类做参数(如果其中一个类没有方法中调用的方法,会报错)。
20,属性修饰符:@public,完全开放式,@private,只可以本类访问,子类不能直接访问,@protected,默认的,本类以及子类以外,其他地方不能直接访问,@package其他包不能访问,如果没有包与包之间的合作@package就相当于@public。
21,一个(NSString*)中包含着它的类名NSString和它的内存地址
22,class既是一个方法,也是一种类型,可以建立对象来获取并返回当前类对象的信息。如class c = [p class];获取了p对象的信息
 
23,当需要反复输出一个类并且它固有的值时,重写继承自NSObjec中的description方法。它是调用NSLog时默认的自动调用方法,默认包含着类名和类的内存地址。description方法也有类方法和对象方法两种


24,在根据类的那些自动调用的方法中,不要用self,很容易发生死循环。
0 0
原创粉丝点击