首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
SoC
掘友等级
iOS开发者 | bug制造员
iOS开发者 | bug制造员
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
赞
40
文章 25
沸点 15
赞
40
返回
|
搜索文章
最新
热门
《Git原理详解及实用指南》笔记
Git是一个分布式的版本控制系统。 HEAD指向当前commit的引用。当前commit在哪里,HEAD就在哪里,这是一个永远自动指向当前commit的引用,所以永远可以使用HEAD来操作当前commit。HEAD是Git中一个特殊的引用,他是唯一的。 branch也是Git中…
iOS 开发中的一些简单总结
@property 的本质是生成setter方法和getter方法以及一个带下划线的成员变量,通过autosynthesis添加到类中的。 这是代表原子性 但是atomic不能完全保证线程安全 它只保证了setter和getter方法的线程安全,具体的情况:当A线程进行写操作的…
TCP的三次握手和四次挥手简述
TCP通信需要经过创建连接、数据传送、终止连接三个步骤。 TCP通信是面向连接并且可靠的。通信双方在正式进行通信之前必须先建立可靠一对一的连接,并且分配一定的系统内核资源,双发的数据通过这个连接进行,而且当通信结束之后双发必须断开连接以释放系统资源。 TCP采用发送应答机制,每…
CocoaPods 创建私有仓库(ObjC)
通过Podfile文件执行pod install或者pod update往iOS项目中导入第三方库,实际上是找到podspec文件中描述的git仓库(svn), 然后从git仓库clone到本地的。 我们从gem安装cocoapods成功之后,在本地的~/.cocoapods/…
ObjC 多线程简析(二)- os_unfair_lock的类型和自旋锁与互斥锁的比较
我们知道自旋锁加锁的时候,等待锁的线程处于忙等状态,并且占用着CPU的资源。而互斥锁加锁的时候,等待锁的线程处于休眠状态,不会占用CPU的资源。 那么我们探就加锁状态下的等待锁的线程的状态就可以得出os_unfair_lock这把锁的类型。 依然使用上一篇中提到的卖票的案例。,…
ObjC 多线程简析(一)-多线程简述和线程锁的基本应用
在iOS开发中,经常会遇到将耗时操作放在子线程中执行的情况。 一般情况下我们会使用NSThread、NSOperation和GCD来实现多线程的相关操作。初次之外pthread也可以用于多线程的相关开发。 pthread提供了一套C语言的api,它是跨平台的,需要开发人员自行管…
ObjC RunLoop简析
当我们创建一个terminal项目的时候,此时的main函数中并没有一个RunLoop。所以程序运行完main函数之后就退出了。 而一个iOS的application程序,默认在主线程开启了一个RunLoop,这样一个App就可以处理一些计时器事件,滑动事件等,不会马上退出。 …
ObjC Runtime简析 -- super和superclass
这一个经典的面试题,Student是Person的一个子类,在子类Student的init方法中调用4个方法并打印结果。 我们看到当对self进行消息发送的时候底层是调用了runtime的objc_msgSend方法,而对super进行消息发送的时候底层是调用了objc_get…
ObjC Runtime简析-- objc_MsgSend
objc_msgSend()函数在runtime源码中是通过汇编代码实现的。它存在与runtime源码的这个位置: 通过上图我们可以看出,消息发送经过了判定消息接受者是否为nil,然后从缓存中查找方法,如果依然查找不到会递归getMethodNoSuper_nolock查找父类…
ObjC Runtime简析
在iPhone cpu 使用arm64架构之前,isa指针就是一个Class类型的普通指针,存储着Class、Meta-Class的内存地址。在这之后apple对isa指针进行了优化,利用位域的技术,将isa指针换成了一个union(共用体)。arm64架构之后的isa指针每一…
下一页
个人成就
文章被点赞
116
文章被阅读
37,661
掘力值
911
关注了
62
关注者
50
收藏集
1
关注标签
61
加入于
2017-12-21