首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
xcgg
掘友等级
程序员
iOS、微信小程序、angular
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
9
文章 9
沸点 0
赞
9
返回
|
搜索文章
最新
热门
iOS-多线程(四)-GCD定时器
日常的开发中,我们经常会用到计时器。在iOS中,有三种计时器,NSTimer、CADisplayLink、dispatch_source,这三种定时器都是各有优劣。 NSTimer加在main runloop中,模式是NSDefaultRunLoopMode,main负责所有主…
iOS-锁-@synchronized
@synchronized,同步锁,又名对象锁,由于其使用简单,基本上是在iOS开发中使用最频繁的锁。 通过符号断点我们可以将上述代码定位到objc源码。 @synchronized(nil)不会做任何事情,可以用来防止死递归。 我们再来看看当obj存在的时候,@synchro…
iOS -锁-NSRecursiveLock
NSRecursiveLock,递归锁,顾名思义,执行递归操作的时候使用的锁。是互斥锁中的递归锁,可被同一线程多次获取的锁,而不会产生死锁。什么意思呢,一个线程已经获得了锁,开始执行受锁保护的代码(锁还未释放),如果这段代码调用了其他函数,而被调用的函数又要获取这个锁,此时已然…
iOS-锁-NSCondition&NSConditionLock
条件锁,顾名思义,就是满足某些条件才会开锁。NSCondition,可以确保线程仅在满足特定条件时才能获取锁。一旦获得了锁并执行了代码的关键部分,线程就可以放弃该锁并将关联条件设置为新的条件。条件本身是任意的:可以根据应用程序的需要定义它们。 NSCondition对象实际上作…
iOS -锁-NSLock
NSLock是iOS开发中最基础的锁。它继承自NSObject,遵守NSLocking协议。用于处理线程安全问题。 运行该程序会崩溃,这是因为,我们在不断地创建array,mArray在不断的赋新值,释放旧值,这个时候多线程操作就会可能存在值已经被释放了,而其他线程还在操作,此…
iOS-内存地址调用
可以看到pp确实正常调用了方法,这是为什么呢?我们先来分析一下,person调用方法,person是一个对象,而对象的本质是个结构体,并且第一个元素是isa,isa指向的是类对象。实例方法都是存在类中的,person能够调用方法,也是通过isa指向了类,从而从类的数据中找到了方…
iOS-内存管理(二)-引用计数
Objective-C内存管理的核心思想就是通过对象的引用计数来对内存对象的生命周期进行控制。说直白一点,就是调用retain会加1,调用release就会减1,引用计数清零或者调用dealloc就销毁。 引用计数,即为对象被持有的次数。是内存管理的核心点。下面我们来看一个关于…
面试题-isKindOf vs isMemberOf
+isKindOfClass作为类方法调用的时候,object_getClass传入的参数是类,返回的是元类,多层级遍历之后根元类的父类就是根类,所以isKindOfClass我们只需要判断当前调用的元类、父类和比较类是否相同即可。 -isKindOfClass作为实例方法调用…
iOS-多线程(三)-GCD函数
单次函数一般用来创建单例或者是执行只需要执行一次的程序。 dispatch_once会保证block中的程序只执行一次,并且即使在多线程的环境下,dispatch_once也可以保证线程安全。 dispatch_apply 函数会按照指定的次数将指任务添加到指定的队列中进行执行…
iOS-NSTimer
NSTimer是iOS常见定时器。它经过特定时间间隔就会触发,将指定的消息发送到目标对象。定时器是线程通知自己做某件事的方法,定时器和runLoop的特定的模式相关。如果定时器所在的模式当前未被runLoop监视,那么定时器将不会开始,直到runLoop运行在相应的模式下。如果…
下一页
个人成就
文章被点赞
39
文章被阅读
70,575
掘力值
1,581
关注了
55
关注者
23
收藏集
1
关注标签
43
加入于
2019-01-21