原创 iOS_Error(三)

You don’t have permission to file(沒有權限操作文件) .plist文件-> Executable file -> $(EXECUTABLE_NAME)   dyld: Library not loaded

原创 iOS_鎖:基礎的9種鎖,擴展12種使用

首先理解幾個鎖的概念: 互斥鎖(mutexlock)sleep-waiting: 保證共享數據操作的完整性, 鎖被佔用的時候會休眠, 等待鎖釋放的時候會喚醒。 在訪問共享資源之前進行加鎖,訪問完成後解鎖。 加鎖後,任何其他試圖加鎖的線程會

原创 iOS_多線程三:NSOperation的使用

NSOperation 是一個抽象類,線程安全,不需要添加額外的鎖 使用其子類:NSInvocationOperation 和 NSBlockOperation 1、NSInvocationOperation 一個對象,表示一個任務 默認

原创 iOS_等待多個異步操作回調完成後,執行響應代碼

  我所做項目的需求是,當前頁面有多個網絡請求,等待所有網絡請求結束後,拿到數據,刷新View 示例代碼用 dispatch_after 當做是網絡請求了 實現如下: dispatch_group_t group = dispatch_

原创 iOS_circle water ripple wave progress 圓形水波紋進度動畫

    大神1: https://www.jianshu.com/p/0327ea46d1bc 使用CGPathCreateMutable畫出了水波浪 (但是水浪就沒法實現漸變色了)   大神2:https://www.jianshu.c

原创 iOS_OC判空:NULL、nil、Nil、NSNull

NULL = (void *)0 C指針的字面空值 nil = (id)0 OC對象的字面空值 Nil = (Class)0 OC類的字面空值 NSNull = [NSNul

原创 iOS_多線程四:NSThread + 總結

  一、NSThread 是iOS中輕量級得多線程,一個NSThread對象對應一條線程 1、一些類方法 [NSThread mainThread]; // 獲取主線程 [NSThread currentThread]; // 獲取當前

原创 iOS_版本低於iOS13 Crash:dyld: Library not loaded CryptoKit

公司要了高通的Gaia庫實現OTA,版本迭代他們用了CryptoKit,而我們的app還是支持iOS9的,所以得做一下兼容: 網上找了方法:(雖然編譯過了,但是iOS12的手機點擊就閃退) #if canImport(CryptoKit

原创 iOS_多線程二:GCD:notify、enter leave、semaphore、barrier、diapatch_apply等的使用

實現:等待多個耗時異步任務完成後,執行 方法1:使用notify dispatch_group_t group = dispatch_group_create(); dispatch_queue_t queue = dispatch_g

原创 iOS_多線程一:GCD

一、基礎概念 1、GCD簡介 Grand Central Dispatch 簡稱(GCD)是蘋果公司開發的技術。以優化應用程序支持多核心處理器和其他的對稱多處理系統的系統。  •GCD屬於函數級的多線程,性能更高,功能也更加強大。  •它

原创 iOS_Runtime是什麼?原理?作用?怎麼實現weak?使用

Runtime: 1、什麼是runtime? 就是在程序運行的過程中,有一套C語言級別的API,它把代碼從OC轉換成C   2、原理: OC是基於C,並添加了面向對象的特性,將很多靜態語言在編譯和鏈接時做的事放到了runtime運行時來處

原创 iOS_WKWebView與JS交互 Demo

一、WKWebView的使用: 1、初始化 webView初始化:WKPreferences, WKUserContentController -> WKWebViewConfiguration -> WKWebView 這裏添加了三個

原创 iOS_RunLoop是什麼?基本作用?原理?注意事項

1、RunLoop是什麼? RunLoop是運行循環,在程序運行過程中循環做一些事情,如果沒有RunLoop:程序執行完畢就會立即退出;如果有RunLoop:程序會一直運行,並且時時刻刻在等待用戶的輸入操作。RunLoop可以再需要的時候

原创 iOS_EventKit的Calendar和Reminder的使用

EventKit掌管着日曆事件和提醒事件兩個App的信息 調用相關代碼,需要在plist文件裏添加item,如下圖: 都通過EKEventStore進行訪問 private var store: EKEventStore = EKEv

原创 iOS_音頻波形圖Time、Wave實現,滑動設置播放進度

實現如下: 需要的數據源: 1、demo.mp3:音頻文件 2、samplePoints 數組:每秒音量(0-1)數組,根據音頻pcm採樣數據文件計算出來的(遍歷:每秒取一點,並記錄下最大值;最後按取值爲0至1,進行縮放。計算完的數存如