240 发简信
IP属地:北京
  • @Cherry_00d7 目前只考虑 北京和西安的机会

    基于ReSwift和App Coordinator的iOS架构

    iOS架构漫谈当我们在谈iOS应用架构时,我们听到最多的是MVC,MVVM,VIPER这三个Buzz Word,他们的逻辑一脉相承,不断的从ViewController中把逻...

  • @创联维新_日更 只不过文章最主要还是介绍代理如何优雅的抓observable

    RxSwift--DelegateProxy

    最近做模块化遇到一个问题,就是UIApplicationDelegate的一些回调需要在各个模块使用,最后想到了RxSwift的DelegateProxy完美解决。(Dele...

  • @创联维新_日更 是的 runtime方式其实 还没 notificaition 好用

    RxSwift--DelegateProxy

    最近做模块化遇到一个问题,就是UIApplicationDelegate的一些回调需要在各个模块使用,最后想到了RxSwift的DelegateProxy完美解决。(Dele...

  • 文章写得不错,顺求群,一起交流成长

    2018程序员跳槽最全攻略

    序言 找工作是件非常重要的事情,它直接影响你1~2年,间接影响你3~5年人生。一个潜在的机会会让你少奋斗很多年,而一冲动的离职,会让你和千万财富错失交臂。忘掉那些随地乱扔的小...

  • Rx终于进入大众视野了,2.5年Rx老司机路过:smile:

    给 iOS 开发者的 RxSwift(一)

    RxSwift 或许我们都听说过,但或许只知道 RxSwift 这个单词,长篇大论关于 RxSwift 的介绍往往使读者迷失在各种概念当中,却不知如何让它大展伸手。或许我们可...

  • po主理解错了。atomic是绝对安全的。
    我们知道,在64位的操作系统下,所有类型的指针,包括void * 都是占用8个字节的。超过4个字节的基本类型数据都会有线程并发的问题。
    那所有的指针类型都会有这个问题。
    以oc 下的 NSArray * 为例子,如果一个多线程操作这个数据,会有两个层级的并发问题
    1、指针本身
    2、指针所指向的内存

    指针本身也是占用内存的,并且一定是8个字节,第二部分,指针所指向的内存,这个占多少字节就不一定了,有可能非常大,有可能也就1个字节


    所以我们考虑NSArray * array 这个数据array 多线程操作的时候,必须分成两部分来描述,一个是&array这个指针本身,另一个则是它所指向的内存 array
    大家注意下 &array 和 array 的区别 ,其实不用纠结,你就想象现在有两块内存,一块是8字节,一块n字节,8字节里面放的值,就是n字节内存的首地址,

    ok 现在联系上atomic,如果用@property(atomic)NSArray *array 修饰之后,会有什么影响?网上说的很多,不再赘述,我只想从内存的角度来解释这个过程

    首先第一点,你要记住,@property(atomic)NSArray *array 其实修饰的是这个指针,也就是这个8字节内存,跟第二部分数据n字节没有任何关系,被atomic 修饰之后,你不可能随意去多线程操作这个8字节,但是对8字节里面所指向的n字节没有任何限制!这就是所有网络上所说的 atomic 不安全的真相 !!!

    我们来看一下,这能怪atomic? 本身你修饰的是一个指针,并且atomic 已经完美的履行了它的指责,你现在不可能对这个8字节进行无序的多线程操作,这就够了呀!atomic没有任何鸟问题。有问题的是人,你本身并未对n字节做任何的限制,所以把问题怪罪到atomic 上真的是很不合理

  • 120
    为Charles设置自动代理

    Charles是网络调试利器,但是使用的时候也带来一些麻烦,比如手机忘记设置手动代理了,或者调试完忘记关掉手动代理,打不开网页很是蛋疼,那么今天我们就来搞定它,我们来使用自动...

个人介绍
用心工作,用心生活。