- 博客(6)
- 资源 (7)
- 问答 (2)
- 收藏
- 关注
原创 iOS-动态方法决议与消息转发机制
在消息发送机制中我们介绍过,OC是动态语言,对象调用方法其实就是对象接收消息,而消息的发送采用“动态绑定”机制,具体会调用哪个方法直到运行时才确定,然后去执行绑定的代码。绑定的过程:以下面代码为例Person *p = Person.new;[p eat];方法调用时,编译器会底层将之转换成C语言的函数objc_msgSend(p, @selector(eat));,来对p发送消息。消...
2019-12-10 15:55:51 713
原创 iOS-消息发送机制
在Object-C中,方法的调用不再理解为对象调用其方法,而是要理解成对象接收消息,消息的发送采用"动态绑定"机制,具体会调用哪个方法直到运行时才能确定,确定后才会去执行绑定的代码。OC调用方法的形式如下:Person *p = Person.new;[p eat];从形式上看调用方法是使用中括号的形式,但是我们知道Object-C是动态语言,当代码执行到该调用的时候,系统到底做了哪些工...
2019-12-08 22:30:42 1071
原创 iOS-动态添加方法
动态添加方法可以在动态创建的类中添加也可以在已存在的类中添加,先来看下动态添加方法的定义函数:OBJC_EXPORT BOOLclass_addMethod(Class _Nullable cls, SEL _Nonnull name, IMP _Nonnull imp, const char * _Nullable types) OBJC_AVAI...
2019-12-07 15:35:45 870
原创 iOS-动态添加属性
前一章介绍了动态创建类,这章主要讲动态添加属性。一、动态添加实例变量Ivar:通过函数class_addIvar()添加属性,更准确的说是添加成员变量,函数定义如下OBJC_EXPORT BOOLclass_addIvar(Class _Nullable cls, const char * _Nonnull name, size_t size, uint8_t...
2019-12-06 11:26:53 821
原创 iOS-动态创建类
在运行时动态创建一个类:导入头文件#import <objc/runtime.h>,动态添加类,创建一个继承 NSString 的类NSStringSubClass类,如下代码: // 类名也可以直接使用C字符串写法 ”NSStringSubClass“ NSString *className = @"NSStringSubClass"; // Cre...
2019-12-04 13:20:09 1273
原创 iOS-类和对象之本质
iOS界比较流行的一句话:万物皆对象!为什么会有这么一个说法呢?难道类(class)也是对象(object)?对象其本质又是什么?这些问题在实际开发中或许遇不到,但当真的涉及到底层的开发,就要面对这些问题。想要透析对象的本质,就要了解运行时(runtime),苹果已经将 Object-C runtime 代码开源了,从:http://opensource.apple.com/source/objc...
2019-12-02 18:15:59 1018
UIWebview加载html5链接,webview内容显示不全
2017-08-28
iOS webView高度不能变低
2017-08-16
TA创建的收藏夹 TA关注的收藏夹
TA关注的人