轉(zhuǎn)載請(qǐng)注明,原文地址:Swift4 終極解析方案:基礎(chǔ)篇 做過(guò)網(wǎng)絡(luò)開發(fā),特別是互聯(lián)網(wǎng),甚至移動(dòng)端開發(fā)的,日常對(duì)于數(shù)據(jù)解析,早年主流的XML,現(xiàn)今主流的JSON都是非常熟悉的,...
轉(zhuǎn)載請(qǐng)注明,原文地址:Swift4 終極解析方案:基礎(chǔ)篇 做過(guò)網(wǎng)絡(luò)開發(fā),特別是互聯(lián)網(wǎng),甚至移動(dòng)端開發(fā)的,日常對(duì)于數(shù)據(jù)解析,早年主流的XML,現(xiàn)今主流的JSON都是非常熟悉的,...
背景 之前就了解到j(luò)s中有Promise這么一個(gè)東西,可以很友好的實(shí)現(xiàn)異步方法,后來(lái)偶然在一段ios開源代碼中看到這么一段用法: 眼前一亮,firstly第一步做xxx,th...
layoutSubviews在以下情況下會(huì)被調(diào)用: init初始化不會(huì)觸發(fā)layoutSubviews但是是用initWithFrame 進(jìn)行初始化時(shí),當(dāng)rect的值不為CG...
自旋鎖:是用于多線程同步的一種鎖,線程反復(fù)檢查鎖變量是否可用。由于線程在這一過(guò)程中保持執(zhí)行,因此是一種忙等待。一旦獲取了自旋鎖,線程會(huì)一直保持該鎖,直至顯式釋放自旋鎖。 自旋...
isKindOfClass:確定一個(gè)對(duì)象是否是一個(gè)類的成員,或者是該類的子類成員 isMemberOfClass:只能確定一個(gè)對(duì)象是否是當(dāng)前類的成員. 比如MyString繼...
圖片緩存框架 圖片的讀寫 讀取圖片image.png 緩存圖片image.png (1)如果程序并沒(méi)有被關(guān)閉,一直在運(yùn)行,那么此時(shí)內(nèi)存緩存中有數(shù)據(jù),硬盤緩存中有數(shù)據(jù)。如果此時(shí)...
1.privateprivate 訪問(wèn)級(jí)別所修飾的屬性或者方法只能在當(dāng)前類里或者該類的extension中訪問(wèn) 2.fileprivatefileprivate 訪問(wèn)級(jí)別所修...
可以不改變?cè)创a的情況下增加實(shí)例變量。可與分類配合使用,為分類增加屬性。(類別是不能添加成員變量的(property本質(zhì)也是成員變量 = var + setter、getter...
property 的 atomic 是采用 spinlock_t 也就是俗稱的自旋鎖實(shí)現(xiàn)的. 自旋鎖會(huì)忙等: 所謂忙等,即在訪問(wèn)被鎖資源時(shí),調(diào)用者線程不會(huì)休眠,而是不停循環(huán)在...
load load 函數(shù)是當(dāng)類或分類(Category)被加載到 Objective-C runtime 時(shí)(就是被引用的時(shí)候)被調(diào)用的,實(shí)現(xiàn)這個(gè)方法可以讓我們?cè)陬惣虞d的時(shí)候...
值類型,即每個(gè)實(shí)例保持一份數(shù)據(jù)拷貝。 在 Swift 中,典型的有 struct,enum,以及 tuple 都是值類型。而平時(shí)使用的 Int, Double,F(xiàn)loat,S...
map() : 就是接受一個(gè)閉包作為規(guī)則,自動(dòng)遍歷集合的每一個(gè)元素,使用閉包的規(guī)則去處理這些元素,生成一個(gè)結(jié)構(gòu)相同的集合 compactMap: 對(duì)給定數(shù)組的每個(gè)元素,執(zhí)行閉...
耗電優(yōu)化 查看耗電情況:1、可使用 Energy Impact 查看 APP 能耗概況2、若是存在高能耗情況,使用 Instruments 的 Energy Log 模板進(jìn)行...
內(nèi)存優(yōu)化 一. 內(nèi)存泄露 Xcode 自帶了兩種內(nèi)存泄露查詢工具:1 . Analyze(靜態(tài)分析工具): 邏輯缺陷:訪問(wèn)空指針或未初始化的變量等; 內(nèi)存管理錯(cuò)誤:如內(nèi)存泄漏...
七層網(wǎng)絡(luò)協(xié)議 互聯(lián)網(wǎng)的本質(zhì)是一系列的網(wǎng)絡(luò)協(xié)議,這個(gè)協(xié)議就叫做OSI協(xié)議OSI模型有7層結(jié)構(gòu),每層都可以有幾個(gè)子層。OSI的7層從下到上分別是7-應(yīng)用層、6-表示層、5-會(huì)話層...
weak 的用處 用一句話可歸納為:弱引用,在對(duì)象釋放后置為 nil,避免錯(cuò)誤的內(nèi)存訪問(wèn)。用更通俗的話來(lái)表述是:weak 可以在不增加對(duì)象的引用計(jì)數(shù)的同時(shí),又使得指針的訪問(wèn)是...
pre-main階段 對(duì)于pre-main階段,Apple提供了一種測(cè)量方法,在 Xcode 中 Edit scheme -> Run -> Auguments 將環(huán)境變量D...
strong和copy 當(dāng)原字符串是NSString時(shí),由于是不可變字符串,所以,不管使用strong還是copy修飾,都是指向原來(lái)的對(duì)象,copy操作只是做了一次淺拷貝。 ...
原因 當(dāng)你在ViewController(簡(jiǎn)稱VC)中使用timer屬性,由于VC強(qiáng)引用timer,timer的target又是VC造成循環(huán)引用。當(dāng)你在VC的dealloc方...