原创 類的本質-類對象

前言 今天整理了下自己電腦裏的一些碎片筆記,時間有限只整理了這篇文章——類的本質,大家可以進行參考。 1.本質 · 類的本質其實也是一個對象(類對象) · 程序中第一次使用該類的時候被創建,在整個程序中只有一份。 · 此後每次使用都是

原创 iOS 崩潰日誌 Backtrace的符號化

iOS的崩潰日誌配合dsym文件可以找到崩潰時的backtrace,這是解決崩潰的最重要的信息. 如果是在同一臺mac上打包, 導入crash log時候會自動將backtrace符號化,可以看到方法名,

原创 Cobub文檔

Cobub Razor是一款開源的移動應用統計分析系統,您可以把它搭建在您自己的服務器上,收集並展現來自您的移動App(包括iOS,Android和Windows Phone)的相關用戶行爲數據。 Cobub Toaster是一個獨立

原创 oc消息轉發機制

Class 類型對象 OC本身是一種強類型語言,但其運行時功能讓它又有了動態語言的特點。OC中對象的類型和對象所執行的方法都是在運行時階段進行查找並確認的,這種機制被稱爲動態綁定。想要弄清楚運行時如何能夠實現動態綁定機制,首先要了

原创 sizeof()解析

 最近發現,許多公司筆試題都有考查sizeof()的用法,所以藉此機會,自己學習一下,做以總結。 sizeof是運算符,可用於任何變量名、類型名或常量值,當用於變量名(不是數組名)或常量時,它不需要用圓括號。 sizeof有兩種用法

原创 iOS開發 之 不要告訴我你真的懂isEqual與hash!

爲什麼要有isEqual方法? isEqual方法的作用大家肯定是知道的: 判斷兩個對象是否相等 但是判斷相等不是已經有==運算符了麼, 爲什麼還要isEqual方法? 這是因爲: 對於基本類型, ==運算符比較的是值; 對於對象類

原创 重載hash與isEqual:方法

前言 NSObject 自帶了hash與isEqual:方法,服務於具有hash表結構的數據結構。NSObject自帶的hash函數相當於hash表中的f(key)函數中的key,這“唯一”的key需要用戶自己產生,至於用什麼算法由用

原创 iOS 靜態庫,動態庫與 Framework 淺析

靜態庫與動態庫的區別 首先來看什麼是庫,庫(Library)說白了就是一段編譯好的二進制代碼,加上頭文件就可以供別人使用。 什麼時候我們會用到庫呢?一種情況是某些代碼需要給別人使用,但是我們不希望別人看到源碼,就需要以庫的形式進行封

原创 iOS 簡單理解類的本質

1.類也是個對象 類是一個對象是Class類型的對象簡稱類對象Class類型的定義 // 一個任意的類型,表示一個Objective-C類 typedef struct objc_class *Class; 類名就代表着類對象,

原创 __NSTaggedPointerString 轉碼問題

__NSTaggedPointerString 這個類型是標籤指針字符串,這是蘋果在 64 位環境下對 NSString,NSNumber 等對象做的一些優化。簡單來講可以理解爲把指針指向的內容直接放在了指針變量的內存地址中,因爲在 6

原创 CFBundleURLType 與 LSApplicationQueriesSchemes 的區別

CFBundleURLType:當前APP的scheme記錄, 通過schema可在其它App中打開當前App LSApplicationQueriesSchemes是從iOS9時被引入的。 用意:當前APP允許訪問的APP有哪些,

原创 添加多個UIWindow時,使用keyWindow要注意一點

最近的項目裏有個關於創建多個uiwindow時使用keywindow出現的bug。有個任務是在打開信息展示時,要求不被任何東西遮擋。這裏設計方案是添加一個新的HXUIWindow繼承與UIWindow。測

原创 [Objective-C]關聯(objc_setAssociatedObject、objc_getAssociatedObject、objc_removeAssociatedObjects)

關聯     關聯是指把兩個對象相互關聯起來,使得其中的一個對象作爲另外一個對象的一部分。    關聯特性只有在Mac OS X V10.6以及以後的版本上纔是可用的。 在類的定義之外爲類增加額外的存儲空間     使用關聯,我們可以不

原创 NSString 剪切一個字符串 deleteCharactersInRange

NSMutableString   爲可變的字符串     NSString       爲不可變的字符串 - (void)viewDidLoad {     NSMutableString *a = [[NSMutable

原创 APP提交審覈時,這些坑你本可以直接避免

在APP提交app store審覈時,以下這些坑你是可以直接避免的。蟬大師在知乎整理出在APP提交審覈時要注意的事情,讓自身應用順利上線。   1.軟件名字衝突。提交時發現有軟件名字一樣。丫停的。只能換。想好軟件名字搜一下先。 2