- 博客(17)
- 收藏
- 关注
原创 iOS的消息转发机制
OC由于运行时特性,可以在运行期间动态添加方法,这个寻找动态添加的方法的过程就是动态消息转发。iOS的消息转发机制分为三个步骤:动态方法解析、快速消息转发机制、标准消息转发机制(一)动态方法解析首先是征询接收者所属的类,看其是否能动态添加调用的方法,来处理当前这个未知的选择子;-(BOOL)resolveInstanceMethod:(SEL)selector或者+(BOOL)res...
2019-07-08 18:13:09
7050
原创 RunLoop
1. 简介 RunLoop可以理解为一个do-while循环:function loop(){ initialize(); do{ event = getEvent(); HandleEvent(event); }while(isWeakUp); }当然肯定还有一些其他的处理逻辑在内部,才能保证其一一对应的线程能够在有任务时被唤醒,没有任务时休眠。OSX/iOS系统提供...
2019-06-21 15:50:40
598
原创 NSTimer循环引用
NSTimer循环引用+ (NSTimer *)timerWithTimeInterval:(NSTimeInterval)ti target:(id)aTarget selector:(SEL)aSelector userInfo:(nullable id)userInfo repeats:(BOOL)yesOrNo;开发过程中肯定会用到计时器,一般都会选择NSTimer,由于time...
2019-06-21 14:49:51
292
原创 Flutter开发环境搭建
(一)首先下载解压Flutter SDK https://storage.googleapis.com/flutter_infra/releases/stable/macos/flutter_macos_v1.0.0-stable.zip(二)把flutter SDK添加到环境变量PATH 中 vim ~/.bash_profile编辑文件 export PU...
2019-01-24 10:39:06
421
原创 HTTP和TCP协议,三次握手四次挥手
一、HTTP是什么http(HyperText Transfer Protocol),超文本传输协议,是互联网上最广泛的一种网络传输协议,所有www文件都必须遵守的一个标准,是以ASCII码传输,建立在TCP/IP协议上的应用层规范。用于从www服务器传输超文本到本地浏览器的传输协议。HTTP是采用明文形式进行数据传输。http可以说成是一种客户端和应答服务器端请求和应答的标准((TCP)。通...
2019-07-15 17:04:03
449
原创 KVO实现原理和代码实现
键值观察通知依赖于NSObject两个方法:willChangeValueForKey:和didChangeValueForKey:在一个被观察属性发生改变之前,willChangeValueForKey:一定会被调用,这就会记录旧的值。而改变发生后:observerValueForKey:ofObject:change:context:会被调用,继而didChangeValuueForKey:也...
2019-07-12 15:19:10
226
原创 Category、load、initialize
根据runtime的消息发送机制,核心函数void objc_msgSend(void /* id self, SEL op, … */ )发送消息,先从当先类的方法列表中查找调用方法,如果没有找到,则会向上寻找其父类中的方法列表。对于category重写了主类中的方法,OBJCKaTeX parse error: Expected group after '_' at position 17...
2019-07-09 11:31:58
245
原创 nil、Nil 、NULL、NSNull
nil:指向Objective C语言中对象的空指针,其定义值为(id)0。Nil:指向Objective C语言中类的空指针,其定义为(Class)0.NULL:指向c语言中标准的空指针,其定义为(void*)0.NSNull:在Objective C语言中的集合对象中,表示空对象,用在不能使用nil的场合,如[NSArray addObject:[NSNull null]若obj为ni...
2019-07-09 11:29:08
332
原创 事件传递和响应机制
苹果文档https://developer.apple.com/documentation/uikit?language=objc(一)事件传递过程苹果注册了一个source1(基于mach port)用来接收系统事件,其回调函数为_IOHIDEventSystemClientQueueCallback()。当一个硬件事件(触摸、摇晃锁屏等)发生后,首先由IOKit.framework生成一...
2019-06-25 18:12:07
845
原创 LeetCode(三)无重复字符的最长子串(Longest Substring Without Repeatinng Characters )--------(OC版本)
Given a string, find the length of thelongest substringwithout repeating characters.Example 1:Input: "abcabcbb" Output: 3 Explanation: The answer is "abc", with the length of 3. Example 2:Input...
2019-03-19 21:20:08
269
原创 LeetCode(一)求两个数之和( Two Sum)--------(OC版本)
Given an array of integers, returnindicesof the two numbers such that they add up to a specific target.You may assume that each input would haveexactlyone solution, and you may not use thesamee...
2019-03-14 17:58:25
939
5
原创 去APP Store评分撰写评论方案
(一) 跳转APP Store的方式,在APP Store应用内进行评分实现方式:以[[UIApplicationsharedApplication]openURL:url的方式去评分iOS 7.0以后 的url :@"https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewContentsUserReview
2018-01-12 17:09:12
4575
原创 合并真机和模拟器的framework的可执行文件
lipo -info 可执行文件的路径 查看信息lipo -create 真机framework的可执行文件的路径 模拟器framework的可执行文件的路径 -output 真机framework的可执行文件的路径这样就轻松的合并到真机的framework里面了
2017-07-24 17:50:42
384
原创 AppDelegate 内的方法在APP生命周期触发的时机和顺序
首先介绍一下各个方法触发的时机- (BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions { // Override point for customization after application launch.
2017-06-15 14:15:35
724
原创 UITextField、UITextField限制字符串中文与其他类型文字的长度
UITextField UITextView 字符串长度 汉字与数字 汉字与字母
2017-06-13 14:27:10
331
原创 iOS 用StackView的第三方FDStackView,有时会出现crash,'NSInternalInconsistencyException', reason: 'Multiplier is
在项目中用stackView 但是考虑到系统适配的问题,至少适配与iOS7.0以上版本,所以就用了FDStackView神器.用的时候模拟器可能不会出现问题,但是一真机调试就会crash,原因:'NSInternalInconsistencyException', reason: 'Multiplier is not finite! That's illegal. multiplier:nan...
2016-04-10 12:29:55
1523
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅