
iOS原理 - 基础
基础原理
直隶码农
coding
展开
-
strong和copy对NSString的影响
讨论再声明一个NSString属性时,什么时候该用strong,什么时候用copy。 code: @interface StringObj () @property (nonatomic, strong) NSString *strongString; @property (nonatomic, copy) NSString *copyedString; @end - (v原创 2017-10-14 11:33:01 · 213 阅读 · 0 评论 -
iOS copy使用
介绍copy和mutableCopy介绍深拷贝与浅拷贝block为什么要用copycopy相对于直接赋值的好处总结 预备知识 : 内存的栈区 : 由编译器自动分配释放, 存放函数的参数值, 局部变量的值等. 其操作方式类似于数据结构中的栈. 内存的堆区 : 一般由程序员分配释放, 若程序员不释放, 程序结束时可能由OS回收. 注意它与数据结构中的堆是两回事, 分配方式倒是类似于链表转载 2017-10-14 12:36:21 · 382 阅读 · 0 评论 -
iOS分类实现原理
iOS 分类底层是怎么实现的? 本文将分如下四个模块进行探究 分类的结构体编译时的分类分类的加载总结 本文使用的runtime源码版本是 objc4 - 680 文中类与分类代码如下 //类 @interface Person : NSObject @property (nonatomic ,copy) NSString *presonName; @end @implementat转载 2017-10-15 10:04:28 · 2592 阅读 · 0 评论 -
iOS Block原理和内存中位置
Posted by 微博@iOS音视频原创文章,自由转载-非商用-非衍生-保持署名 简介 今天回顾一下blcok,基本用法在我的这篇文章中有较为详细的描述,这次不再回顾,本次 block的原理和内存中的位置 是主角。 如何理解blcok block:可以理解为匿名的函数,就是预先准备好的一段代码,在需要的时候调用。 底层实现 block是一个指针结构体,在终端转载 2017-10-15 10:33:36 · 1170 阅读 · 0 评论 -
iOS知识原理篇
runtime怎么添加属性、方法等 ivar表示成员变量class_addIvarclass_addMethodclass_addPropertyclass_addProtocolclass_replaceProperty 是否可以把比较耗时的操作放在NSNotificationCenter中 首先必须明确通知在哪个线程中发出,那么处理接受到通知的方法也在这个线程中调用如果在异步线程转载 2017-10-15 13:40:51 · 351 阅读 · 0 评论 -
iOS事件传递和响应机制-原理篇
前言: 按照时间顺序,事件的生命周期是这样的: 事件的产生和传递(事件如何从父控件传递到子控件并寻找到最合适的view、寻找最合适的view的底层实现、拦截事件的处理)->找到最合适的view后事件的处理(touches方法的重写,也就是事件的响应) 其中重点和难点是: 1.如何寻找最合适的view 2.寻找最合适的view的底层实现(hitTest:withEvent:底层转载 2017-10-15 18:03:29 · 297 阅读 · 0 评论