培训课程oc部分总结 (oc)_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > 培训课程oc部分总结 (oc)

培训课程oc部分总结 (oc)

 2013/8/5 23:08:20  MingFung_Liu  博客园  我要评论(0)
  • 摘要:201306031.传给windows的文件命名需要是英文或数字,中文命名的文件解压会乱码。2.终端ping命令用ctrl+c停止。3.command+空格切换输入法。4.回车重命名文件,空格查看信息。5.command+shift+3或者4,截图。20130628面向对象是以对象为编程中心,以事件为驱动的编程思想,各功能是模块化的。面向过程以事件为中心,按事件的因果关系和时间顺序而展开的编程思想。201307011.类具有相同属性和行为的集合。2.实例变量前最好加_3
  • 标签:总结 培训

 20130603


1.
传给windows的文件命名需要是英文或数字,中文命名的文件解压会乱码。
2.
终端 ping 命令用ctrl+c停止。
3.command+
空格切换输入法
4.回车重命名文件,空格查看信息。
5.command+shift+3  或者4,截图。


20130628

  • 面向对象是以对象为编程中心,以事件为驱动的编程思想,各功能是模块化的。
  • 面向过程以事件为中心,按事件的因果关系和时间顺序而展开的编程思想。


20130701

1.类具有相同属性和行为的集合。
2.实例变量前最好加_
3.@property 取代手动添加的设置器和访问器的声明,而且封装了实例变量
4.self.property赋值能达到正确性校验(在设置器中完成的),用property直接赋值就将不符合要求的亦设置上实例变量。
6.
  • 操作属性实际是操作相应的实例变量;
  • 属性是供内外设置和访问的,
  • 它代表着某个对象或某个时刻的状态。
7.若为基本数据类型用assign,对象类型用retain 修饰属性。
8.self代表指向当前实例对象的指针。super代表指向父类对象的指针。
9.实例方法:用对象调用的方法。


20130703

1.属性的修饰属性:控制权限,线程安全,内存管理。
2.“-” 方法是实例方法,实例调用。 “+” 方法是类方法,类调用
3.单例:一个类的里面只有一个对象,当你强行创建多个对象,也只是对同一个对象起个别名而已,因为它们指向的都是同一块内存空间。一般格式为:+default~;+shareInstance~。


20130705

1.OC是单一继承。 oc是一门动态运行时语言,体现在两方面:1运行时-典型的例子id,直到知道了其修饰对象的具体内容是什么才开辟相应的内存;2多态
2.封装:隐藏内部实现,稳定外部接口好处:
  • 使用更加简单;
  • 变量更加安全;
  • 可以隐藏内部实现细节;
  • 开发速度加快。
  •  
  • 类封装了属性和行为;
  • 属性封装了实例变量和设置器访问器;
  • 方法封装了操作。
3.继承:让子类拥有父类的一些特征。特性:
  • 单根性-一个子类只能有一个超类;
  • 传递性:如果AB的子类,BC的子类,那么A具有C的所有特性
4.多态:不同对象对同一消息的不同响应,子类重写父类的方法。(一个类对一个行为有多种实现方式)
5.id:对象的通用数据类型。万能类型匹配符。把一开始开辟内存推迟到具体alloc,开始声明的时候不知道具体类型,但运行到具体代码时才确定。
  • 优点:id类型较灵活;可以向对象发送任意已存在消息;而在编码阶段不报任何警告。
  • 缺点:id类型变量,可读性不高;无法在编码阶段发现语法错误
  • id数据类型没有*号;动态数据类型;可以指向任何类的对象;


20130708

1.引用计数(retainCount)方式管理对象所占用的内存:
  • a.使用alloc为对象分配内存,使用dealloc释放对象所占用的内存;
  • b.使用allocnew或者copy构造对象时,对象的retainCount1
  • c.调用对象的retain方法可以增加1 retainCount
  • d.调用对象的release方法可以减少1 retainCount
  • e.当对象的retainCount0时,dealloc会自动调用,释放对象内存;否则分配给对象的内存将被一直占用。
  • f.所有对象可以使用retainCount属性查看当前的计数器值。
2.引用计数是内存被多少个对象拥有控制权(所有权):
  • a.alloc创建一个对象,并将其引用设置为1,并拥有对象所有权;
  • b.copy制造一个副本,并将副本的引用计数设为1,并拥有副本所有权;
  • c.retain使对象引用计数加1,并拥有对象所有权;
  • d.release使对象引用计数减1,并放弃对象所有权;
3.如果一个属性是对象类型的话,它的修饰词应该用retain
4.好的内存管理编程习惯:定义完retain的对象类型的属性后,在dealloc中对应release该属性的实例变量,否则容易出内存泄露。
5.
  • 对象分配内存,并应在使用后,调用release释放内存;
  • 凡是出现retain alloc copy的地方,都应出现release与之匹配调用。
6.
  • 内存无法确定释放时间时,可以使用autorelease向最近的池注册(安全释放);
  • 由池决定释放所有权时间;
  • 使用便利构造器获得的对象,都应是autorelease的。
7.工程打开静态分析器(targets-build settings)


20130708

1.类方法:单例;便利构造器。
2.静态变量只初始化一次。
3.重载:一个类中,方法名相同,参数个数、参数类型不同。
4.重写(覆盖):
  • 发生在子类和父类间的;
  • 重新写父类中的同名方法。
5.多态:
  • 操作性多态,存在于一个类中有多个同名方法(重载);
  • 虚函数,父类方法中没实现操作,由子类根据自身特性完成继承方法的操作实现。


20130710

  1. KVC:是一种间接访问对象属性(用字符串表征)的机制,而不是直接通过调用设置器访问器方法或点语法去访问对象的属性。因此,对象的属性都可以以一致的方式访问(oc2.0之前没有点语法,用方法访问名称不统一)。
  2. KVO
  3. 上下文的作用主要是传值
  4. 使用通知之前,要创建通知对象。Notification对象有两个重要的成员变量:name和object,一般name用来唯一标示一个通知对象,object指通知发送者。特性:一对多;接收者必须存在。
  5. 代码生成辅助工具:accessorizer
  6. mac版参考文档工具:dash

20130712
1.可变:操作同一块内存。 不可变:操作多块内存。 2.向可变容器中添加对象,该对象的引用计数加一,控制权归系统(容器release系统自动向对象release)。 3.
  • 字典使用key-value形式存储数据;
  • 字典中的对象的存储没有顺序,使用key来表示每个对象;
  • 想字典有序只能让key有序;
  • key一般是字符串;
4.set是无序集合,其存储的对象不允许出现重复。


20130717
1.类目:为现有的类添加方法,不管能不能拿到源代码,都可以添加。 2.类目的特性:
  • 可以为已知的类添加方法,哪怕没有源代码的类; 
  • 通过类目添加方法会成为原始类的一部分; 
  • 与原类中的方法同为平衡等级; 而且会被子类继承; 
  • 类目中最好不要添加目标类已有的方法名,否则会重新同名方法。
3.类目的用处:
  • 可以扩展别人的类;
  • 把代码放到多个文件中,便于多人协作。
4.类目要注意的:
  • 不能在类目中添加成员变量; 
  • 可以为同一个类添加多个类目,但类目名和方法名不能重复; 
  • 不要随意重写类中的方法。
6.延展是一种特殊形式的类目(oc没有私有方法),延展定义的方法在类本身中实现,编写在类的实现文件中(定义私有方法)。 7.延展定义的方法是伪私有方法,对外不可见,但可强行调用它。 8..h及.m(延展)都没声明的私有方法,是6.0及以后的方法。 9.协议就是一套标准:协议定义了应该实现什么,但不关心具体怎么实现。 协议是谁有需求谁定义,实现协议的就是其代理人。 10.OC的协议是由@protocol声明的一组方法列表:要求其它的类去实现,相当于@interface部分的声明。 11.协议的特点:
  • 可以规范类的行为; 
  • 利于系统设计; 
  • 利于团队开发; 
  • 是可选语法,并不是一定要使用协议。
12.小结:
  • 类目是为现有的类添加方法,不管能不能拿到源代码,都可以添加; 
  • 延展是为类添加伪私有方法;
  • 协议就是一套标准,定义了应该实现什么,但不关心具体怎么实现。


20130719  
  1. 目录:文件的一种组织形式;文件:数据在存储介质上的存储形式。     
  2. NSData:字节数据缓冲类(bytebuffer),主要用于存储二进制


20130721   OC总结
1.类和对象:
  • 类是具有相同属性和行为的集合,类通过.h和.m文件定义,h文件包括成员变量(实例变量)、属性、方法、协议,m文件中可以添加静态变量(在方法实现的内外)。
  • 对象是类的实例化。
  • 初始化先判断self=[super init]是否存在,因oc里存在初始化不成功的现象。
2.对象的属性:
  • 属性是类的特征,表示对象当前状态,供外界访问。
  • 是对象就该用retain,copy包括深复制和浅复制,基本数据类型和复杂数据类型、包括特殊的delegate代理对象都用assign,setter和getter重定义设置器访问器方法,权限readonly。
  • 手动实现设置器访问器可以实现业务逻辑和正确性校验,不想用手动实现可用关键字@sy。。实现。
  • retain的属性要再dealloc中释放,assign不用在dealloc中释放。
3.方法:
  • - 是实例方法,通过对象调用,+ 是类(静态)方法,通过类调用。
  • 有多少个冒号就由多少个参数,冒号前为参数的解释。
4.面向对象三大特征:
  • @public用得比较少,因为其破坏了类的封装性,@private只能在本类中用得到,@protected父类和子类中可用。
  • 继承是继承属性、非私有的变量和方法。
5.内存管理:
  • 谁alloc、retain、copy谁release,属性的内存管理。
  • autorelease使对象延时释放,应用范围较窄,在便利构造器返回对象时用,配合自动释放池。
6.KVC KVO:
  • kvc把属性编码成相应的字符串,通过字符串访问属性。
  • kvo当属性值发生变化时,能监听到(注册监听者,实现监听方法,dealloc中移除监听),基于kvc。
  • 通知:1对多的,传值(通知)的对象必须存在
7.类目延展协议:
  • 通知传值代理传值单例传值。
  • 类目对没有源代码的类添加方法,助于团队方法,与类的其它方法平级。
  • 延展定义和实现在.m文件中,定义伪私有方法。
  • 协议定义了一套标准,规定了要实现什么,但不关心怎么实现。通过协议让两个类产生关系。
8.字符串 集合:
  • 可变继承于不可变。
  • 字典是保持键值对,是无序的,要有序必须保证key有序。
9.文件:
  • nsfilemanager 管理文件。
  • nsdata将网络上资源读成二进制流。
  • nsboundle 是包,获取包中的资源常用。


20130723

系统的协议只需要知道其什么时候执行即可。

发表评论
用户名: 匿名