首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
海浪宝宝
掘友等级
iOS开发工程师
iOS
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
19
文章 19
沸点 0
赞
19
返回
|
搜索文章
最新
热门
数据结构和算法--单向循环链表
一、线性表线性表分为链式结构和顺序结构1、存储方式顺序存储结构是用一段连续存储单元一次存储线性表的数据元素单链表是才有链式存储结构,用一组人员的存储单元存放线性表的元素2、时间性能查找的时间性能:顺序
iOS逆向--加密算法
哈希(散列)函数:不属于加密算法。例如MD5、SHA1/256/512 Hash,一般翻译做“散列”,也有直接译为“哈希”的,就是把任意长度的输入通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是散列值的空间通常远小于输入的空间,不同的输入可能会…
数据结构和算法--数据结构基础
其中指数阶(不考虑) O(2^n)或者O(n!) 除非是非常小的n,否则会造成噩梦般的时间消耗. 这是一种不切实际的算法时间复杂度. 一般不考虑! 问题: 数组逆序,将一维数组a中的n个数逆序存放在原数组中.
runloop原理探究
从堆栈信息里面我们看到调用了__CFRunLoopRun-->__CFRunLoopDoTimers-->__CFRunLoopDoTimer,__CFRunLoopRun是唤醒runloop。我们再看一下__CFRunLoopDoTimers 上面是timers的运行方式,还…
iOS--自动释放池-autoreleasePool
然后在main.m文件里面写上下面代码。其中_objc_autoreleasePoolPrint是objc源码公开出来的,用来打印autoreleasePool里面对象的函数,我们通过extern引进来 那出栈是如何出栈呢。我们在上面知道出栈是调用objc_autoreleas…
iOS内存管理
我们知道在set方法时候,系统是对新值retain,然后对旧值release。因为是多线程,所以release和retain可能在多个线程操作,就有可能一个对象还没release完成,又有一个线程对该对象进行release,这样就可能会造成对一个引用计数器为0的对象多次rele…
iOS基于二进制重排的启动优化
在应用加载时候不会把所有数据放内存中,因为数据是懒加载,当进程访问虚拟地址时候,首先看页表,如果发现该页表数据为0,说明该页面数据未在物理地址上,这个时候系统会阻塞该进程,这个行为就叫做页中断(page Fault),也叫缺页异常,然后将磁盘中对应页面的数据加载到内存中,然后让…
iOS--block原理探究
1、在OC源文件block.m写好代码。 2、打开终端,cd到block.m所在文件夹。 3、输入clang -rewrite-objc block.m,就会在当前文件夹内自动生成对应的block.cpp文件。 第30位:与BLOCK_USE_STRET相对,判断是否当前blo…
atomic和nonatomic的分析
我们看到。当不是atomic时候,setter方法是直接将值传递过去,当时atomic时候会加一把锁后再赋值。 我们看到get方法中如果不是atomic的话,直接返回属性里面的值,如果是atomic的话,也会加一个锁,然后将属性值retain一下得到一个新的变量,然后再将这个变…
iOS锁--八大锁
里面会发现,第15张票造成了资源抢夺现象,这种情况就叫做线程不安全,当加锁以后就买票顺序就很正常了。 NSLock 遵循 NSLocking 协议,lock 方法是加锁,unlock 是解锁,tryLock 是尝试加锁,如果失败的话返回 NO,lockBeforeDate: 是…
下一页
个人成就
文章被点赞
152
文章被阅读
93,539
掘力值
2,209
关注了
33
关注者
109
收藏集
1
关注标签
11
加入于
2017-07-14