自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Hanrovey Blog

该来的总会来

  • 博客(39)
  • 资源 (5)
  • 论坛 (2)
  • 问答 (1)
  • 收藏
  • 关注

转载 【Swift】[译]RxSwift + MVVM: 怎样搞定 ViewModels,冷热信号

[译]RxSwift + MVVM: 怎样搞定 ViewModels

2020-06-17 23:11:42 164

转载 【iOS】程序 main 函数之前发生了什么

转载地址:iOS 程序 main 函数之前发生了什么1、加载动态链接库2、加载二进制文件3、runtime 与 +load

2020-06-15 22:38:46 50

转载 【iOS】Zombie Objects(僵尸对象)原理探索

iOS Zombie Objects(僵尸对象)原理探索总结:系统在回收对象时,可以不将其真的回收,而是把它转化为僵尸对象。这种对象所在的内存无法重用,因此不可遭到重写,所以将随机变成必然。系统会修改对象的 isa 指针,令其指向特殊的僵尸类,从而使该对象变为僵尸对象。僵尸类能够相应所有的选择器,响应方式为:打印一条包含消息内容及其接收者的消息,然后终止应用程序。...

2020-06-15 22:02:22 219

转载 【网络基础】详解http和https的作用与区别

转载地址:详解http和https的作用与区别PS: https就是http和TCP之间有一层SSL层,这一层的实际作用是防止钓鱼和加密。防止钓鱼通过网站的证书,网站必须有CA证书,证书类似于一个解密的签名。另外是加密,加密需要一个密钥交换算法,双方通过交换后的密钥加解密。http与https有什么区别呢?本文详解http和https的区别。 只要上过网的朋友一定接触过“HTTP”,每次开网页的时候,不管是什么网址,其前面都会出现HTTP字样,比如 “http://www.j...

2020-06-15 21:34:44 285

转载 【Swift】Swift面向协议编程初探

Swift面向协议编程初探

2020-06-15 21:02:24 37

转载 【iOS】KVC原理剖析

KVC原理剖析

2020-06-15 17:19:13 43

转载 【Swift】 struct与class

转载地址:理解Swift中struct和class在不同情况下性能的差异Swift 中的 struct 和 class我们主要从三个性能维度来比较struct和class的性能差异内存分配引用计数方法派发

2020-06-15 13:30:34 63

转载 【iOS】深入浅出 GCD 之 dispatch_once

深入浅出 GCD 之 dispatch_once总结dispatch_once 用 原子性 操作block执行完成标记位,同时用 信号量 确保只有一个线程执行block,等block执行完再唤醒所有等待中的线程。dispatch_once常被用于创建单例、swizzeld method等功能。...

2020-06-14 22:00:44 52

转载 【iOS】理解 ARC 实现原理(经典)

转载地址:理解 ARC 实现原理

2020-06-14 20:18:32 158

转载 【iOS】category和方法覆盖,如何让同名方法可以全部被访问?

转载地址:美团研发组-iOS category内部实现原理怎么调用到原来类中被category覆盖掉的方法?对于这个问题,我们已经知道category其实并不是完全替换掉原来类的同名方法,只是category在方法列表的前面而已,所以我们只要顺着方法列表找到最后一个对应名字的方法,就可以调用原来类的方法:Class currentClass = [MyClass class];MyClass *my = [[MyClass alloc] init]; if (currentClass) {

2020-06-14 19:48:25 396

转载 【iOS】一文全解iOS通知机制(经典收藏)

NSNotification是同步还是异步?和delegate相比有什么区别,效率呢?默认是同步的

2020-06-14 19:36:33 61

转载 【iOS】EXC_BAD_ACCESS小结

转载地址:EXC_BAD_ACCESS小结简单的理解:当遇到了 EXC_BAD_ACCESS 异常,意味着 访问了一个已经被释放的内存区域 。指针层面理解:从C、OC语言来解释,我们平时所操作的对象其实是一个指针,指针是指向另一块存储区域的变量。当向一个对象发送消息,指向这个对象的指针需要被使用,也就是你获得了指针指向的内存地址并且可以访问该内存块的值。当系统不再为你映射该内存块时,换句话说,该内存块已经不能够被你所使用,则不可以再次访问该内存块。 如果再次访问这块内存,发生这种情况时,内核会发送一

2020-06-14 19:16:42 41

转载 【iOS】performSelector和直接调用方法的区别

performSelector和直接调用方法的区别

2020-06-14 16:41:40 74

转载 【iOS开发】Native混编Flutter交互实践

参考文章:iOS Native混编Flutter交互实践Flutter中文网

2020-06-14 13:09:42 62

转载 【iOS】动画(Core Animation)总结

转载地址iOS动画(Core Animation)总结

2020-06-12 12:40:48 54

转载 【iOS开发】微信读书-组件化方案探索 Mediator中间人模式

iOS 组件化方案探索

2020-06-12 00:22:01 71

转载 【iOS】微信读书 性能优化总结

转载地址:微信读书 iOS 性能优化总结性能问题的解决方法1、优化业务流程2、合理的线程分配由于 GCD 实在太方便了,如果不加控制,大部分需要抛到子线程操作都会被直接加到 global 队列,这样会导致两个问题:1.开的子线程越来越多,线程的开销逐渐明显,因为开启线程需要占用一定的内存空间(默认的情况下,主线程占1M,子线程占用512KB)。2.多线程情况下,网络回调的时序问题,导致数据处理错乱,而且不容易发现。为此,我们项目定了一些基本原则。1.UI 操作和 DataSource

2020-06-11 23:37:31 125

转载 【网络】HTTPS理论基础

转载地址:HTTPS理论基础HTTPS的4次握手是指SSL认证+TCP的3次握手吗?

2020-06-11 19:23:29 43

转载 【Swift】深入理解 Swift 方法派发机制

转载地址:深入理解 Swift 派发机制

2020-06-11 12:43:23 77

转载 【iOS】weak底层实现原理

问:当weak指向的对象被释放时,如何让weak指针置为nil的呢?1、调用objc_release2、因为对象的引用计数为0,所以执行dealloc3、在dealloc中,调用了_objc_rootDealloc函数4、在_objc_rootDealloc中,调用了object_dispose函数5、调用objc_destructInstance6、最后调用objc_clear_deallocating,详细过程如下:a. 从weak表中获取废弃对象的地址为键值的记录b. 将包含在记录

2020-06-10 12:44:07 54

原创 【iOS开发】for in 可变数组 崩溃

该问题来自一道笔试题:一、执行下面代码会发生什么?什么解决? NSMutableArray *array = [NSMutableArray arrayWithObjects: @"122", @"333", @"444", nil]; for (NSString *string in array) { [array removeObject: string]; }答:会崩溃,提示 NSGenericException 异常。出现下面的报错信息**

2020-06-09 11:53:49 203

转载 【iOS开发】常用5种数据存储方式

iOS应用数据存储的常用方式xml属性列表(plist)归档Preference(偏好设置)NSKeyedArchive归档(NSCoding)SQLiteCore Data转载地址:https://www.cnblogs.com/HJiang/p/4197199.html

2020-06-09 11:16:23 63

原创 【iOS】MD5 与Base64 的区别

MD5·不可逆性。·任意长度的明文字符串,加密后得到的密文字符串是长度固定的。Base64·可逆性。·可以将图片等二进制文件转换为文本文件。·可以把非ASCII字符的数据转换成ASCII字符,避免不可见字符。...

2020-06-09 11:10:58 48

原创 【iOS】Swift和OC协议的区别?为何Swift是面向协议的?

一、共同点本质都是抽取不同类的共同方法和属性(声明),供遵循协议的类或对象使用。都可以通过定义协议实例deleagate,来实现委托代理模式。PS:类比继承的概念,继承父类的方式比较险隘,子类和父类只能为同一基类,且方法都有实现,需在子类中override,并不能把方法和属性完全独立出来,且不能多继承。二、区别(核心)OC中的协议:1、更单纯的受限于委托代理的含义,多用于跨类的传值和回调通知。Swift的协议:1、Swift可以通过协议extension扩展,缺省实现协议的方法(OC不行)。

2020-06-09 11:04:17 465

转载 【iOS】weak和assign的区别

一、区别1.修饰变量类型的区别weak 只可以修饰对象。如果修饰基本数据类型,编译器会报错-“Property with ‘weak’ attribute must be of object type”。assign 可修饰对象,和基本数据类型。当需要修饰对象类型时,MRC时代使用unsafe_unretained。当然,unsafe_unretained也可能产生野指针,所以它名字是"unsafe_”。2.是否产生野指针的区别weak 不会产生野指针问题。因为weak修饰的对象释放后(引用计数器

2020-06-09 10:43:32 43

转载 【iOS】事件传递,响应者链条

事件传递,响应者链条

2020-06-07 20:06:42 60

转载 【算法】-《恋上数据结构》第1季 + 第2季 笔记目录(完整)

《恋上数据结构》第1季 + 第2季 笔记目录(完整)

2020-06-06 15:46:37 243

原创 【iOS开发】计算实时FPS

原理FPS的计算CoreAnimation有一个很好用的类CADisplayLink,这个类会在每一帧绘制之前调用,并且可以获取时间戳。于是,我们只要统计出,在1s内的帧数即可。import UIKitclass FPSMonitor: UILabel { private var link: CADisplayLink = CADisplayLink.init() private var count: NSInteger = 0 private var lastTime:

2020-06-06 13:40:24 99

转载 【iOS开发】分类中同名方法的调用顺序

分类中同名方法的调用顺序

2020-06-05 23:26:48 258

转载 【iOS开发】多个category的同名方法,如何保证能按顺序全部执行?而不是只执行最后编译的一个方法?

iOS 为何使用runtime方法交换多次后却能按照交换顺序依次执行代码逻辑?

2020-06-05 23:08:09 523

转载 【算法】数据结构初探

数据结构初探

2020-06-05 22:52:13 43

转载 【iOS开发】启动优化 二进制重排

启动优化 二进制重排

2020-06-05 16:02:02 104

原创 【算法】判断单链表中是否有回路

设快、慢两个指针:fast和slow,在程序开始时,二者都指向单链表的链表头,之后循环移动两指针,fast指针在一次循环中向前移动两步(fast=fast->next->next;),slow指针则只移动一步(slow=slow->next;),两指针进行追赶,若在任何一次循环中两指针指向同一结点,则说明此单链表中有回路;而若二者中任何一个指针指向了NULL(即到达了链表末尾),则说明此单链表中没有回路。/* 判断链表是否有环 */bool isLinkedListCo

2020-06-05 15:32:11 116

转载 【iOS开发】MLeaksFinder 内存泄露检测工具 设计原理

MLeaksFinder

2020-06-04 17:25:24 104

转载 【iOS开发】UITableView的底层实现

转载:iOS开发-UITableView的底层实现

2020-06-04 13:44:44 81

转载 【iOS开发】页面卡顿监控和优化

转载地址:卡顿卡顿的原因:由上面屏幕显示的原理,采用了垂直同步机制的手机设备。如果在一个VSync 时间内,CPU 或GPU 没有完成内容提交,则那一帧就会被丢弃,等待下一次机会再显示,而这时显示屏会保留之前的内容不变。例如在主线程里添加了阻碍主线程去响应点击、滑动事件、以及阻碍主线程的UI绘制等的代码,都是造成卡顿的常见原因。卡顿监控:卡顿监控一般有两种实现方案:(1). 主线程卡顿监控。通过子线程监测主线程的runLoop,判断结束休眠到再次休眠两个状态区域之间的耗时是否达到一定阈值。(2

2020-06-03 22:36:02 161

转载 【iOS开发】NSConditionLock条件锁

问题:任务A,B,C先执行A和B再执行C可以怎么实现(group,条件锁,barrier)方案1、group 通过创建信号量访问资源数量为1,然后通过wait和sign顺序执行group内线程。方案2、NSConditionLock,通过控制创建条件和解锁条件,顺序执行线程。 let lock = NSConditionLock.init(condition: 3) DispatchQueue.global().async { l

2020-06-03 20:52:10 68

转载 【Swift】@autoclosure 和 ??

源码中可以看到 ?? 的定义有两种版本:func ??<T>(optional: T?, @autoclosure defaultValue: () -> T?) -> T?func ??<T>(optional: T?, @autoclosure defaultValue: () -> T) -> T?? 的实现:func ??<T>(optional: T?, @autoclosure defaultValue: () ->

2020-06-02 17:49:49 56

转载 【JAVA】JIT和AOT

JIT和AOT目前,程序主要有两种运行方式:静态编译与动态解释。静态编译的程序在执行前全部被翻译为机器码,通常将这种类型称为AOT (Ahead of time)即 “提前编译”;而解释执行的则是一句一句边翻译边运行,通常将这种类型称为JIT(Just-in-time)即“即时编译”。AOT程序的典型代表是用C/C++开发的应用,它们必须在执行前编译成机器码,而JIT的代表则非常多,如JavaScript、python等。事实上,所有脚本语言都支持JIT模式。但需要注意的是JIT和AOT指的是程序

2020-06-02 14:30:39 98

xcode8.0以上 配置iOS 10.2 开发包

xcode8.0以上 配置iOS 10.2 beta开发包

2016-11-24

Xcode12.1支持iOS14.2真机包

Xcode12.1支持iOS14.2真机包,解决无法编译新的iOS14.2真机问题。Xcode12.1支持iOS14.2真机包,解决无法编译新的iOS14.2真机问题。

2020-11-09

安卓oaid-sdk_1.0.13.zip

获取Android手机Oaid,最新SDK 1.0.13, Oaid,安卓设备标识体系,可以解决Android Q之后获取设备唯一标识的需求。

2020-05-22

PHP 2016中文手册

PHP 2016中文手册 Mac 电脑请下载Read CHM打开该文件

2016-12-29

xcode8.0以上 配置iOS 10.2 beta开发包

xcode8.0以上 配置iOS 10.2 beta开发包

2016-11-24

Hanrovey的留言板

发表于 2020-01-02 最后回复 2020-01-02

【iOS开发】国内首款运动健康类App的开发(机器学习)

发表于 2018-01-23 最后回复 2018-01-24

TA创建的收藏夹 TA关注的收藏夹

TA关注的人 TA的粉丝

提示
确定要删除当前文章?
取消 删除