前言 OC编程和runtime系统的相互作用,可以分三个不同的标准: 通过OC源代码。 通过在Foundation framework 的 NSObject类中定义方法。 通过直接调用runtime 函数。 OC源代码 这是最重要的一部分,ru ...
分类:
其他好文 时间:
2018-02-09 15:14:07
阅读次数:
142
模拟器在拨打电话方法不执行,必须真机才能拨打电话。一下方法是在iOS10系统下进行测试 方法一、requestWithURL (推荐使用) 特点: 拨打前弹出提示。 并且, 拨打完以后会回到原来的应用。 OC代码: Swift代码: 方法二、openURL(telprompt) 特点: 拨打前弹出提 ...
分类:
移动开发 时间:
2018-02-09 15:02:23
阅读次数:
253
前言 Objective C语言尽可能多的将许多决定从编译连接推迟到运行时。无论何时,它都尽可能的动态处理事件。这就意味着OC语言不仅仅需要编译器,还需要一个运行时系统来执行编译完成的代码。对于OC而言,运行时系统扮演了操作系统的角色;就是它使得OC运行起来。 这个文档涉及到NSObj ...
分类:
其他好文 时间:
2018-02-09 14:59:45
阅读次数:
175
1 // 2 // main.m 3 // 分类 4 // 5 6 /* 7 分类:Category (类目,类别)(OC特有) 8 命名:Person+EE (Person+ 自动生成,只要写后面的,一般以模块名为名) 9 分类的作用:在不改变原来类的内容的情况下,可以给我们的类添加一些方法 10 ...
分类:
移动开发 时间:
2018-02-09 14:54:14
阅读次数:
208
前言 在不同的平台,有不同版本的OC runtime。 旧的和现在的版本 有两个版本的OC runtime——“旧版”和“现在版”。现在版就是OC 2.0并包含了许多新特性。旧版本的runtime的编程接口就是OC 1;现在版本的runtime全部接口参见 ...
分类:
其他好文 时间:
2018-02-09 14:51:25
阅读次数:
166
第一级转发:主体不变,动态添加对应函数; 第二级转发:函数不变,切换接收主体; 第三极转发:函数签名不变,主体和函数都有可能变化; 1、使用函数的动态添加技术; 2、使用的类似is-a swzzing技术; 3、使用到了函数签名的机制,保证函数的输入输出参量个数一致。 https://www.cnb ...
分类:
其他好文 时间:
2018-01-30 16:56:05
阅读次数:
116
1. block是oc特有的一种数据类型(数据类型:定义变量,做行参,做返回值,需要声明和初始化) 2. 功能与函数类似,用于保存一段代码,实现一个功能(需要调用) 3. 可以有返回值,有参数 需要声明,初始化,调用 4. 书写格式: void (^ sumblock)(int , int ); / ...
分类:
其他好文 时间:
2018-01-26 01:39:30
阅读次数:
199
1、OC常用属性汇总 atomic:生成的setter、getter操作为原子操作,为系统默认,执行性能低,但是是线程安全的。 nonatomic:生成的setter、getter操作是非原子操作,推荐手动设置为nonatomic属性,执行性能高,多线程容易出现异常。 assign:用来修饰值类型, ...
分类:
其他好文 时间:
2018-01-15 16:32:00
阅读次数:
166
2. 在类的头文件中尽量少引入其他头文件 除非确有必要,否则不要引入头文件。一般来说,应在某个类的头文件中使用向前声明来提及别的类(使用@class),并在实现文件中引入那些类的头文件,这样做可以尽量降低类之间的耦合。 如果要声明某个类遵循某个协议,应该把这个协议放到分类中,或者把协议单独放在一个头 ...
分类:
其他好文 时间:
2018-01-15 11:17:35
阅读次数:
136
都是用于修饰@property声明的变量 assign:用于非oc对象类型,表示直接赋值(默认值) retain:用于mrc中,用于类属性中有oc对象的情况,表示先推断赋值的对象是否和实例对象变量的值相等。 若不相等则先retain在赋值。(即release旧值,retain新值,用于修饰对象) r ...
分类:
其他好文 时间:
2018-01-14 12:12:48
阅读次数:
167