随笔分类 -  OC

iOS设计模式和机制之观察者模式
摘要:观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己。 观察者模式的思想:当某对象改变时,观察者会自动通知所有相关的状态进行更新 iOS中观察者模式实现:有四种方法,NSNotification、K 阅读全文
posted @ 2016-11-05 17:30 陈博文 阅读(381) 评论(0) 推荐(0)
iOS常用设计模式和机制之代理
摘要:Delegate : 1 代理设计模式的使用我们首先需要明白三个要素 *委托方:委托别人去执行某些操作的人(对象) *代理方:被委托区执行某些操作的人(对象) *协议:(protocol)委托方需要代理方执行的操作 > 协议是一套标准(一堆方法的声明),只有 .h 文件。协议的定义以 @protoc 阅读全文
posted @ 2016-11-05 16:16 陈博文 阅读(127) 评论(0) 推荐(0)
OC 中 类目、延展和协议
摘要:Category : 也叫分类,类目。 *是 为没有源代码的类 扩充功能 *扩充的功能会成为原有类的一部分,可以通过原有类或者原有类的对象直接调用,并且可继承 *该方法只能扩充方法,不能扩充实例变量 *添加的类目是一对 .h .m 文件,文件名为 原有类名 + 分类名 Extension :延展 * 阅读全文
posted @ 2016-11-05 15:43 陈博文 阅读(177) 评论(0) 推荐(0)
iOS常用设计模式和机制之Block简单使用
摘要:Block :block 实际上就是 Objective-C语言对闭包的实现 闭包(Closure):闭包就是一个函数,或者一个指向函数的指针,加上这个函数执行的非局部变量。闭包允许一个函数访问声明该函数运行上下文中的变量,甚至可以访问不同运行上文中的变量。 1 block 的原型 和 定义 *bl 阅读全文
posted @ 2016-11-05 14:22 陈博文 阅读(473) 评论(0) 推荐(0)
iOS 常用设计模式和机制之KVO
摘要:KVO http://blog.kyleduo.com/2014/10/20/ios_learning-kvo/ 定义: KVO:Key-Value Observing,是Foundation框架提供的一种机制,使用KVO,可以让 观察者(Observing) 方便地对指定对象(Object) 的 阅读全文
posted @ 2016-11-04 15:59 陈博文 阅读(261) 评论(0) 推荐(0)
iOS 常用设计模式和机制之 KVC
摘要:KVC 1 key Value Coding,键值编码,是一种间接访问实例变量的方法 2 KVC 提供了一种使用字符串(key)而不是访问器方法,去访问一个对象实例变量的机制 3 KVC 常用方法 -(id) valueForKey:(NSString *)key; -(void) setValue 阅读全文
posted @ 2016-11-04 15:58 陈博文 阅读(199) 评论(0) 推荐(0)
OC 内存管理
摘要:(一)内存管理方式1 Crash(闪退) 90%的原因是因为内存问题2 内存问题体现两个方面 : 内存溢出 野指针异常2.1 iOS给每个应用程序分配了一定的内存,用于程序的运行,一旦超出内存上限,程序就会Crash****** iPhone3GS内存30M左右,iPhone5s内存80M左右,iP 阅读全文
posted @ 2016-11-04 14:18 陈博文 阅读(197) 评论(0) 推荐(0)
OC 属性
摘要:1 属性和实例变量 :属性 == 实例变量声明 + setter 方法+ getter 方法 在老版本的 OC 语言中,我们需要同时声明属性和底层实例变量,那时,属性是 OC 语言的一个新的机制,并且要求你必须声明与之对应的实例变量。 后来,苹果将默认编译器从 GCC 转换为 LLVM(low le 阅读全文
posted @ 2016-11-04 13:50 陈博文 阅读(221) 评论(0) 推荐(0)
id 和 instancetype
摘要:静态数据类型 默认情况下所有的数据类型都是静态数据类型 静态数据类型的特点: 1 在编译时就知道变量的类型 2 知道变量中有哪些属性和方法 3 在编译的时候就可以访问这些属性和方法 4 并且如果是通过静态数据类型定义变量,如果访问了不属于静态数据类型的属性和方法,那么编译器就会报错 动态数据类型 i 阅读全文
posted @ 2016-11-04 12:27 陈博文 阅读(200) 评论(0) 推荐(0)
#import 跟 #include、@class 之间的区别
摘要:#include 是 C/C++ 导入头文件的关键字 是完整的包含某个文件的内容(包括该文件中被导入的文件) #import 是 OC 导入头文件的关键字 #import 指令是 OC 针对 #include 的改进版本,使用#import ,能确保引用的文件只会被引用一次,不会出现递归包含的问题 阅读全文
posted @ 2016-11-01 17:10 陈博文 阅读(197) 评论(0) 推荐(0)
OC小结
摘要:#import <Foundation/Foundation.h>#import "Person.h"int main(int argc, const char * argv[]) {#pragma mark OC类和对象 /*1 OC-CObjective -- C 简称OC,OC是C语言的扩充, 阅读全文
posted @ 2016-11-01 16:06 陈博文 阅读(1124) 评论(0) 推荐(0)