
之前在简书发布了第一篇文章,本来采用的是无代码框的富文本形式展现的,不过发现可以在设置中选择markdown, 然后在代码段前后加3个 是esc下面的键, 即可完成代码框的显...
简书是一款很有Google Docs感觉的产品,而且甚至更强大,因为其集成了Markdown和在线内容社区的强大功能。在某种程度上,我认为简书是Google Docs+Mar...
在iOS开发中,一直存在这样一个问题,在TableViewCell上添加Button后,点击Button的时候,发现没有高亮效果,除非长按下去才能看到普通的Button选中效...
感觉楼主的问题应该偏向于block执行过程中,strongSelf还没赋值成功,self被释放后所引发的问题~
weakSelf变为nil的时候,应该表示self本身已经是nil了吧,那么self.block相当于直接向nil发送消息,block本身应该不会被执行,strongSelf就是为了持有self防止在block执行过程中被释放而导致的非原子操作,引发异常,所以必须先strong一下,用新的strongSelf来强持有self,这样才能保证在多线程环境下,block中的内容会是原子操作,加上楼主的提示显然更保险~
因为没有涉及KVO,所以一般都没引发问题,以后的格式感觉就变成这样吧:
self.block = ^{
__strong typeof(weakSelf) strongSelf = weakSelf;
if(!strongSelf){
//TODO
}
}
Weak-Strong-Dance真的安全吗?绝大多数iOS开发者用过block,并且知道用 __weak 的方式去解决循环引用的问题。而进阶一些的开发者则了解Weak-Strong-Dance,那么什么是Weak-St...
我的上篇文章iOS中多个网络请求的同步问题总结中用到了dispatch_group来进行线程同步,对用法不是特别熟悉所以整理这篇文章来加深记忆(闲着也是闲着)。 一、简单介绍...