• 华为:苹果和三星居然用操作系统降频CPU导致卡顿,我们对这种手段表示谴责,我们的手机是凭自身实力卡顿的

    苹果三星故意让手机变慢被罚。华为:我们绝不搞降速…

    情怀不值钱,哪怕是全球智能手机的开创者、最“不同凡响”的苹果。 一切为了利润,一切都是为了多赚钱,哪怕苹果手机的利润是同行当中最高的...... iPhone为了诱导用户购买...

  • 说门槛低的,是相对那些简单工作,甚至体力活而言的代码工作,那些大牛,谁不是看懂了几十本经典书籍,敲了几十万行代码,画过成白上千次架构流程图,甚至电子电路和数学的功底还要好🙏

  • 个人看法,文中更多的讲述是实现,不是设计部份。移动端的MVC跟服务端的MVC不太一样,服务端的MVC属于大设计,而在移动端中的MVC是一种小范围的设计,不是整个程序的架构,如果移动端中的MVC按服务端的MVC来设计,C出现膨胀的情况属于正常,简直就是超级“大胖子”。C出现膨胀多数是设计者本身的问题,没有考虑清楚整个程序的架构

    iOS的MVC框架之控制层的构建(下)

    在我的iOS的MVC框架之控制层的构建(上)一文中介绍了一些控制层的构建方法,而这篇文章则继续对一些方法进行展开讨论。MVC被众多开发者所诟病的C层的膨胀,究其原因不外乎有如...

  • @iOS开发随笔 GCD Timer能不能跟目标线程交互,主要看目标线程是否有RunLoop,GCD队列跟线程的交互是通过向目标线程的RunLoop Port提交任务,目标RunLoop发现事件队列有未完成任务,就去完成,但GCD系统所创建的线程不是由Application来控制的,通过GCD的API向相关的队列添加任务,GCD再把任务发到空闲或指定的线程(例如:Application的Main Thread)中,再做处理,不管怎么样,如果你打算创建一个独立线程(pthread或NSThread),用GCD怎么向这个线程提交任务?

    RunLoop问题集

    什么是RunLoop? 答:RunLoop是线程相关的基础框架中的一部分,是一个事件处理对象,每一个线程都有与之对应的RunLoop,但并不是线程创建时就有RunLoop,只...

  • @Jin_先生 添加一个RunLoop监听者

    页面间跳转的性能优化(二)

    续言 在页面间跳转的性能优化(一)中介绍了一些基础知识,讲述了情形一与情形二的优化方式及原理,但有许多人对情形二最后两种处理方式的原理表示不理解,不清楚处理过程,接下来...

  • @Jin_先生 这是从原理得来的,每一次都往GCD队列里面添加一个事件,Main RunLoop就去处理一个

    页面间跳转的性能优化(二)

    续言 在页面间跳转的性能优化(一)中介绍了一些基础知识,讲述了情形一与情形二的优化方式及原理,但有许多人对情形二最后两种处理方式的原理表示不理解,不清楚处理过程,接下来...

  • @Jin_先生 dispatch_async(dispatch_get_main_queue(), ^{

    NSLog(@"Loop");

    dispatch_async(dispatch_get_main_queue(), ^{

    NSLog(@"Loop");

    dispatch_async(dispatch_get_main_queue(), ^{

    NSLog(@"Loop");
    });
    });
    });

    页面间跳转的性能优化(二)

    续言 在页面间跳转的性能优化(一)中介绍了一些基础知识,讲述了情形一与情形二的优化方式及原理,但有许多人对情形二最后两种处理方式的原理表示不理解,不清楚处理过程,接下来...

  • @Jin_先生 不是太明白你说的,能否说得再清楚一点?

    页面间跳转的性能优化(二)

    续言 在页面间跳转的性能优化(一)中介绍了一些基础知识,讲述了情形一与情形二的优化方式及原理,但有许多人对情形二最后两种处理方式的原理表示不理解,不清楚处理过程,接下来...

  • 最近看电影的感受是,现在的电影似乎“穷”得只剩下效果了,只需要感叹一下效果的逼真,可能真的很难再出《肖申克的救赎》了

    他走了,才发现偶像剧已经倒退15年

    曾经刷遍大街,但其实这首歌已经消失好久。 昨晚,Sir再次点开它,因为有一位与之相关的人,英年早逝了。 李大为。 他是导演,今年才47岁,患胆管细胞癌不幸病逝。 昨晚,陈坤、...

  • @行走的黑子 自己写一个,会清晰很多

    SDWebImage 阅读

    SDWebImage 是一个为苹果各个平台提供图片下载和缓存操作的开源库。相信只要从事 iOS 开发就算没用过也至少听说过。所以阅读它的码源并进行分析,对于开发者尤其是对组件...

  • @行走的黑子 减少同步的次数,增加整个组件的处理时间

    SDWebImage 阅读

    SDWebImage 是一个为苹果各个平台提供图片下载和缓存操作的开源库。相信只要从事 iOS 开发就算没用过也至少听说过。所以阅读它的码源并进行分析,对于开发者尤其是对组件...

  • @行走的黑子 统一接口是正常的,但上下层相互交互的情况多,这样怎么保证后期维护的稳定性,还存在一些跨两层的交互,整个数据流去不明确,或者说关系太紧。可以理解作者为什么这样写,主要是为了减少等的时间,尽可以增加忙的时间,这是权衡过去的选择,但单纯从结构上来说,不值得学习

    SDWebImage 阅读

    SDWebImage 是一个为苹果各个平台提供图片下载和缓存操作的开源库。相信只要从事 iOS 开发就算没用过也至少听说过。所以阅读它的码源并进行分析,对于开发者尤其是对组件...

  • @iStig 不客气

    RunLoop问题集

    什么是RunLoop? 答:RunLoop是线程相关的基础框架中的一部分,是一个事件处理对象,每一个线程都有与之对应的RunLoop,但并不是线程创建时就有RunLoop,只...

  • @iStig 是的,所以NSRunLoop在CFRunLoop的基础上加了一层操作,当CFRunLoop退出当前周期时,会检测是否需要再次进入周期,这是额外加上去的,不是CFRunLoop自己管理的

    RunLoop问题集

    什么是RunLoop? 答:RunLoop是线程相关的基础框架中的一部分,是一个事件处理对象,每一个线程都有与之对应的RunLoop,但并不是线程创建时就有RunLoop,只...

  • @iStig 需要加一层处理才能在RunLoop退出之后进入runloopmode2

    RunLoop问题集

    什么是RunLoop? 答:RunLoop是线程相关的基础框架中的一部分,是一个事件处理对象,每一个线程都有与之对应的RunLoop,但并不是线程创建时就有RunLoop,只...

  • 是的,必须先退出当前周期才能重新选择新的runloopmode

    RunLoop问题集

    什么是RunLoop? 答:RunLoop是线程相关的基础框架中的一部分,是一个事件处理对象,每一个线程都有与之对应的RunLoop,但并不是线程创建时就有RunLoop,只...