原创 Cocoapods的相關知識點

最近需要在Cocoapods上發佈SDK,雖然在之前的公司也弄過本地私有庫,但是相比較發佈到 Cocoapods 上還是有一些差別的,下面列舉一些要點。 驗證本地 podspec 文件的合法性:pod spec lint XXX

原创 use_frameworks!的作用、靜態庫與動態庫、tbd

首先明確一下幾個概念 從iOS8/Xcode6開始,蘋果允許使用動態庫鏈接 通過cocoapods管理應用程序時,在Podfile文件中,**use_frameworks!**的使用區別如下: 使用**use_framewor

原创 CoreAnimation(一):關於圖層樹(既生瑜,何生亮)

CoreAnimation是一個複合引擎,它的職責就是儘可能快地組合屏幕上不同的可視內容,這個內容是被分解成獨立的圖層,存儲在一個叫做圖層樹的體系中,圖層樹是UIKit以及iOS應用程序中屏幕上所能看見一切的基礎。 視圖:UI

原创 iOS中的 uncaught exception 主要有哪些

iOS 中的錯誤分爲 NSError 和 NSException,其中NSError用於可恢復的錯誤,而NSException則是不可恢復的錯誤,對於NSException我們可以通過NSSetUncaughtExceptionH

原创 C++文件打包成framework如何接入使用

最近遇到一個問題,將含有C++文件的代碼打包成framework時,打包時正常,但是不能正確接入到項目中使用,一直報如下錯誤 Undefined symbols for architecture arm64: , referenc

原创 邏輯表達式的合法性判斷(包含小括號的匹配)-iOS

需求的由來: 後臺將過濾的功能放到客戶端來做 給定一個邏輯表達式,客戶端本地做邏輯判斷,例如給定一個表達式:expr = a && (b || c) 需要解決的問題 如何判斷一個邏輯表達式的真假 如何對一個邏輯表達式求值

原创 load 方法與initialize 方法的使用區別

調用時機的不同 load 方法在程序啓動編譯時調用,initialize 方法在使用類時調用 是否能被分類覆蓋 如果分類中實現了 load 方法,不會覆蓋類中的 load 方法,編譯時類與分類都實現了 load 方法時會都調用

原创 git 刪除本地以及遠程標籤

1、刪除本地以及遠程倉庫的標籤 刪除本地倉庫標籤:git tag -d tagName 刪除遠程倉庫標籤:git push --delete tag tagName 注:tagName 爲待刪除標籤名稱 2、重新打標籤並推送到

原创 .a靜態庫與framework庫,以及庫的添加

Xcode 依賴的第三方庫包括: .a 靜態庫(Static Library) . framework 動態庫 (Dynamic Library) 並不能簡單的認爲 .framework 後綴的就是“動態庫”,因爲在 iOS/m

原创 基於sqlite3創建數據庫-iOS

SQlite簡介 sqlite是一個輕量級的跨平臺的數據庫,實現了自給自足的、無服務器、零配置的、事務性的SQL數據庫引擎。 SQlite引擎不是一個獨立的進程,可以按應用程序需求進行靜態或動態連接。SQlite直接訪問其存儲文件。

原创 判斷小數點後幾位:整數的取模運算 (%) 與小數的取模運算(fmod)

整型取模運算符:% 判斷一個整數A是否爲某一個整數B的倍數時,我們可以通過整數的取模運算符 % 來判斷,A % B 等於0時,則A爲B的倍數,反之則不是,其中A、B必須爲整數型數值並且B不能爲0。 另外可以通過運算符%取出一個指定

原创 iOS中使用結構體與位域,大小端數據轉換

如何在iOS中使用結構體數據類型 在定義結構體時,如果不涉及到OC中的對象時,可以直接將結構體當作成員變量屬性使用,一旦在結構中定義了OC中的對象,編譯會報錯,提示“ARC時禁止在結構體中定義OC的對象”,主要原因在於ARC無法管理結

原创 又見block(七):截獲對象

在OC中,C語言結構體不能含有__strong修飾符的變量,因爲編譯器不知道什麼時候初始化和廢棄C語言結構體,不能很好的管理內存。 OC的運行時庫能夠準確地把握block從棧複製到堆以及堆上的block被廢棄的時機,所以block結

原创 又見block(三):block實質

首先來看看block截獲自動變量(外部局部變量)的幾種情況 block“帶有自動變量(截獲局部變量)”的含義在於具有“截獲自動變量值”的能力 ARC中常見的block用法場景如下: 由以上結果總結如下: 默認block的類型

原创 關於 charset 的幾種編碼方式

經常遇到charset=gb2312、charset=iso-8859-1、charset=utf-8這幾種編碼方式,它們有什麼不同,看下面的圖 編碼方式 含義 charset=iso-8859-1 西歐的編碼,英文編碼