前言 NSLog 作為 iOS開發(fā)常用的調(diào)試和日志打印方法,大家都是很熟悉了,開源社區(qū)也為我們貢獻(xiàn)了很多非常優(yōu)秀的日志框架,比如OC中大名鼎鼎的CocoaLumberjack...
前言 NSLog 作為 iOS開發(fā)常用的調(diào)試和日志打印方法,大家都是很熟悉了,開源社區(qū)也為我們貢獻(xiàn)了很多非常優(yōu)秀的日志框架,比如OC中大名鼎鼎的CocoaLumberjack...
這叫原子性,不叫線程安全。
NSMutableArray和NSMutableDictionary多線程安全讀寫一、容器類多線程讀寫的問題我們看蘋果的官方文檔會(huì)發(fā)現(xiàn) NSMutableArray 和NSMutableDictionary 都不是線程安全的,這就帶來一個(gè)問題,主線程我們多...
按照你這個(gè)分析,應(yīng)該是在-[NSObject dealloc]中,weak指針被設(shè)置nil,子類的 -dealloc 方法比父類的 -dealloc 會(huì)先執(zhí)行,在子類的 -dealloc 中的訪問指向它自己的 weak 指針,應(yīng)該是能讀取到地址的,但實(shí)際上在對(duì)象 dealloc 執(zhí)行時(shí),指向它的 weak 指針已經(jīng)是 nil 了。
iOS weak指針置nil具體過程先看一下delloc的具體實(shí)現(xiàn): dealloc的實(shí)現(xiàn) weak指針置nil 當(dāng)weak引用指向的對(duì)象被釋放時(shí),我們需要把指針置為nil 我們?cè)谇懊嬉呀?jīng)講解了,當(dāng)一個(gè)對(duì)象釋放...
線程切換有可能比鎖效率更低,企圖用并發(fā)柵欄來提高性能是不科學(xué)的,而且線程安全也不是一個(gè)屬性的原子性就能保證的,要放到業(yè)務(wù)邏輯中具體處理才行。
iOS property關(guān)鍵字詳解一、property關(guān)鍵字介紹 簡(jiǎn)介:屬性(property)是Objective-C的一項(xiàng)特性,用于封裝對(duì)象中的數(shù)據(jù)。這一特性可以令編譯器自動(dòng)編寫與屬性相關(guān)的存取方法,并且...
第8層:棄坑層,iOS已無前途可言。
iOS 開發(fā)者的七層境界乾坤大挪移,此功分七層境界,悟性高者修習(xí),第一層需七年,第二層加倍,如此愈發(fā)困難,秘笈作者本人只練至第六層,習(xí)至第七層者實(shí)是古往今來第一人。 對(duì)于iOS開發(fā)者而言呢?結(jié)合自身...
你不知道它有個(gè)`contentInset`屬性嗎?page的寬度完全可以用這個(gè)屬性來調(diào)整啊
iOS開發(fā)中實(shí)現(xiàn)UICollectionView的分頁(yè)效果(一頁(yè)的寬度不夠collectionview的寬度)如果collectionView的寬度和每個(gè)item的寬度一樣,那么我們只需要設(shè)置collectionView的pagingEnabled屬性即可實(shí)現(xiàn)分頁(yè)效果。 自定義UIC...
死扣“并行”、“并發(fā)”字眼有意思?
就叫并行隊(duì)列怎么了,它表明指隊(duì)列里的任務(wù)可能會(huì)同時(shí)執(zhí)行,這難道有錯(cuò)?
兩個(gè)任務(wù),如果它們的執(zhí)行時(shí)間有重疊的部分,那么它們?cè)谥丿B這段時(shí)間里,就是并行的,這完全符合概念。
不要太死板,并行隊(duì)列vs串行隊(duì)列,多么完美的一對(duì),非要整那么復(fù)雜干什么。
iOS 多線程--GCD 串行隊(duì)列、并發(fā)隊(duì)列以及同步執(zhí)行、異步執(zhí)行1 什么是隊(duì)列(queue) 在開始GCD之前先來說一下隊(duì)列的概念,因?yàn)镚CD的任務(wù)都是在隊(duì)列中派發(fā)的;隊(duì)列(queue):是先進(jìn)先出(FIFO, First-In-Firs...
正常情況下,我們選擇文檔或文件夾后,可以通過按Command + Delete快捷鍵把此文檔或文件夾快速移進(jìn)廢紙簍。然后按Command + Option + Shift +...
@zzzmh 直到生活狠狠**了你……
9歲女孩常用假幣買水果,水果店主跟蹤回家,看到躺在床上的人蒙了李三元在市里經(jīng)營(yíng)幾家水果店。最近李三元在巡視店鋪時(shí),發(fā)現(xiàn)一個(gè)陌生小女孩總是拿10元假幣來買一兩個(gè)水果,起疑的他跟蹤小女孩,卻無意中收獲了夢(mèng)寐以求的愛情。 李三元的水果店是從父...
666,終于發(fā)現(xiàn)此問題。不過,objc1的頭文件對(duì)于闡述 runtime 機(jī)制還是有很大參考意義的,也方便大家理解,根據(jù)這個(gè)來講解并沒有什么問題。比如看上去objc4和objc1的對(duì) class 的定義差別很大,其實(shí)其核心點(diǎn)就是 isa 指針,對(duì)于理解其結(jié)構(gòu)是一樣的,反而 objc4 的 c++ 語法,讓人不容易理解 objc_class 其實(shí)也有 isa 指針。
iOS Runtime系列一、objc_class深深的誤解推薦閱讀:iOS開發(fā)——BAT面試題合集(持續(xù)更新中) 現(xiàn)在網(wǎng)上講解的objc_class 絕大部分是錯(cuò)的。18年、19年依然很多童鞋寫著錯(cuò)誤的Runtime文章發(fā)到網(wǎng)上,面...
誰說Runloop跟幀數(shù)有關(guān)系的?幀數(shù)是GPU渲染的刷新頻率,Runloop是CPU處理事件的無盡循環(huán),兩個(gè)不相干的東西,不要再用這個(gè)來誤導(dǎo)人了。
使用RunLoop 進(jìn)行卡頓監(jiān)控在開發(fā)中,我們可以使用Xcode自帶的Instruments工具的Core Animation來對(duì)APP運(yùn)行流暢度進(jìn)行監(jiān)控,使用FPS這個(gè)值來衡量。這個(gè)工具我們只能知道哪個(gè)界...
這種做法治標(biāo)不治本啊!要防網(wǎng)絡(luò)請(qǐng)求重復(fù),應(yīng)該從控制網(wǎng)絡(luò)框架上著手吧,畢竟觸發(fā)網(wǎng)絡(luò)請(qǐng)求的不一定是點(diǎn)擊事件??!防止Push異常,也應(yīng)該從優(yōu)化控制器著手吧,你把控制寫的臃腫到要1秒才能打開,設(shè)置防護(hù)時(shí)間也是個(gè)問題,而且也不僅僅是按鈕才能Push。
iOS-UIButton防止重復(fù)點(diǎn)擊(三種辦法)目錄 使用場(chǎng)景方法一 設(shè)置enabled或userInteractionEnabled屬性方法二 借助cancelPreviousPerformRequestsWithTar...
開心一笑:去超市買棒棒糖,我隨手拔了一個(gè)就往嘴里塞。售貨員小妹不解地盯著我,我連忙解釋說:放心,先吃也沒關(guān)系,我又不是不給錢。她點(diǎn)點(diǎn)頭仍舊一臉迷茫:可你,為什么從我嘴里拔呢?...
typeof()不是一元運(yùn)算符,它是編譯器關(guān)鍵字,告訴編譯器應(yīng)該把變量作為什么類型去編譯,不存在任何運(yùn)算,更不是什么運(yùn)算符。
OC中的 typeof() 和 __kindofOC中的 typeof()和__kindof typeof()__weak typeof(self) weakSelf = self;大家都比較熟悉 用于在block中避免循...
文|李彎灣 接吻,可以說是親密關(guān)系中,最重要的一件事了。因?yàn)檫@件事,真的只有親密、互相喜歡才能在相當(dāng)長(zhǎng)的時(shí)間做到。 很多人,別說結(jié)婚了,就是才戀愛沒多久,就已經(jīng)不親吻對(duì)方了。...