240 發(fā)簡信
IP屬地:北京
  • 120
    如何使用 Runtime 給現(xiàn)有的類添加 weak 屬性

    事先說好 ?前不久看到 @sunnyxx 想找一個(gè)性取向正常的實(shí)習(xí)生幫他分擔(dān)一點(diǎn)工作量痒钝,當(dāng)想起他和 @ibireme 秀的親密自拍后我就知道事情并沒有這么簡單→_→确虱。但是作為...

  • 180
    sqatm ·

    po主理解錯(cuò)了撮竿。atomic是絕對安全的。
    我們知道邓了,在64位的操作系統(tǒng)下索守,所有類型的指針,包括void * 都是占用8個(gè)字節(jié)的室叉。超過4個(gè)字節(jié)的基本類型數(shù)據(jù)都會有線程并發(fā)的問題睹栖。
    那所有的指針類型都會有這個(gè)問題。
    以oc 下的 NSArray * 為例子茧痕,如果一個(gè)多線程操作這個(gè)數(shù)據(jù)野来,會有兩個(gè)層級的并發(fā)問題
    1、指針本身
    2踪旷、指針?biāo)赶虻膬?nèi)存

    指針本身也是占用內(nèi)存的曼氛,并且一定是8個(gè)字節(jié)豁辉,第二部分,指針?biāo)赶虻膬?nèi)存舀患,這個(gè)占多少字節(jié)就不一定了徽级,有可能非常大,有可能也就1個(gè)字節(jié)


    所以我們考慮NSArray * array 這個(gè)數(shù)據(jù)array 多線程操作的時(shí)候聊浅,必須分成兩部分來描述餐抢,一個(gè)是&array這個(gè)指針本身,另一個(gè)則是它所指向的內(nèi)存 array
    大家注意下 &array 和 array 的區(qū)別 狗超,其實(shí)不用糾結(jié)弹澎,你就想象現(xiàn)在有兩塊內(nèi)存,一塊是8字節(jié)努咐,一塊n字節(jié)苦蒿,8字節(jié)里面放的值,就是n字節(jié)內(nèi)存的首地址渗稍,

    ok 現(xiàn)在聯(lián)系上atomic佩迟,如果用@property(atomic)NSArray *array 修飾之后,會有什么影響竿屹?網(wǎng)上說的很多报强,不再贅述,我只想從內(nèi)存的角度來解釋這個(gè)過程

    首先第一點(diǎn)拱燃,你要記住秉溉,@property(atomic)NSArray *array 其實(shí)修飾的是這個(gè)指針,也就是這個(gè)8字節(jié)內(nèi)存碗誉,跟第二部分?jǐn)?shù)據(jù)n字節(jié)沒有任何關(guān)系召嘶,被atomic 修飾之后,你不可能隨意去多線程操作這個(gè)8字節(jié)哮缺,但是對8字節(jié)里面所指向的n字節(jié)沒有任何限制弄跌!這就是所有網(wǎng)絡(luò)上所說的 atomic 不安全的真相 !3⑽铛只!

    我們來看一下,這能怪atomic糠溜? 本身你修飾的是一個(gè)指針淳玩,并且atomic 已經(jīng)完美的履行了它的指責(zé),你現(xiàn)在不可能對這個(gè)8字節(jié)進(jìn)行無序的多線程操作非竿,這就夠了呀凯肋!atomic沒有任何鳥問題。有問題的是人汽馋,你本身并未對n字節(jié)做任何的限制侮东,所以把問題怪罪到atomic 上真的是很不合理

  • 120
    Cocoapods 發(fā)布自己的公有庫

    四步走: 一豹芯、封裝自己的輪子 創(chuàng)建自己的工程悄雅,編寫代碼。 pod lib create 工程名稱 給自己的項(xiàng)目打上tag git tag -a 0.0.1 -m 'relea...

  • Swift 進(jìn)階之路 文章匯總

    注:歡迎大家可以關(guān)-注 Wei-Xin 公-眾-號 :Style月月專欄铁蹈,與簡書同步更新~ Swift-進(jìn)階 01:Swift源碼編譯[https://www.jianshu...

  • 120
    iOS — AutoLayout 還不會握牧,你就累到死

    花時(shí)間寫了個(gè)Demo容诬,包含比較全面從UIView,UILabel沿腰,UIImageView的自適應(yīng)到UITextView览徒,UITableView,UICollectionVie...

  • swift4.1非ViewController類實(shí)現(xiàn)頁面跳轉(zhuǎn)

    有時(shí)候我們需要直接獲取到當(dāng)前顯示的UINavigationController颂龙,以便于后續(xù)操作习蓬,獲取方法如下。此方法可以獲取present出來的UINavigationCon...

  • 120
    同步措嵌、異步躲叼、串行、并行的正確理解

    很多人弄不懂這四個(gè)名詞企巢,網(wǎng)上也有很多的誤導(dǎo)枫慷。對于線程死鎖更是解釋的五花八門、煞有介事的樣子浪规。 一.引出此文的元兇---網(wǎng)上的曲解 經(jīng)過我的代碼驗(yàn)證或听,事實(shí)是只寫: 也會造成死鎖...

  • 120
    微信分享注意事項(xiàng)

    本文章所使用的微信sdk版本為1.8.6。 UniversalLink配置的問題 首先是配置app的UniversalLink這里有配置教程https://www.jians...

  • 120
    Swift 4 無限滾動(dòng)輪播圖(UICollectionView實(shí)現(xiàn))

    作為一個(gè)資深(自認(rèn)為)iOS程序猿徘六,會經(jīng)常用到輪播圖,但是總是感覺自己實(shí)現(xiàn)要比直接用別人的要方便一點(diǎn)榴都,并且有一些需求需要深度定制待锈,于是想著自己封裝一個(gè)可以定制化的輪播圖庫JC...

個(gè)人介紹
iOS小菜鳥,歡迎大家指教
亚洲A日韩AV无卡,小受高潮白浆痉挛av免费观看,成人AV无码久久久久不卡网站,国产AV日韩精品