原创 NSString的copy屬性分析 以及 深拷貝淺拷貝

1、copy      copy只會產生不可變的副本對象(NSString對象)           深拷貝 對象拷貝,內容拷貝      淺拷貝 指針拷貝,地址拷貝           可變拷不可變                

原创 OC中nil,Nil,NULL的區別

nil:指向oc中對象的空指針 Nil:指向oc中類的空指針 NULL:指向其他類型的空指針,如一個c類型的內存指針 NSNull:在集合對象中,表示空值的對象 若obj爲nil: [obj message]將返回NO,而不

原创 Xcode  製作靜態庫 .a文件的具體步驟

寫在最前面:靜態庫文件.a,分真機靜態庫和模擬器靜態庫,還分DEBUG版本和Release版,注意區分!!! 1、新建一個靜態庫工程,點擊NEXT,保存在電腦上 2、項工程中添加源文件(.m)和頭文件(.h) 3、編譯前注意選擇DE

原创 iOS 微信支付 實用教程

相關資料  SDK下載:https://pay.weixin.qq.com/wiki/doc/api/app.php?chapter=11_1 APP端開發步驟說明:https://pay.weixin.qq.com/wiki/do

原创 IOS開發--微信支付

IOS開發--微信支付 前言:下面介紹微信支付的開發流程的細節,圖文並茂,你可以按照我的隨筆流程過一遍代碼。包你也學會了微信支付。而且支付也是面試常問的內容。        正文:   1、首先在開始使用微信支付之前,

原创 Objective-C 內存管理 看這個就夠啦

內存管理     範圍: 任何繼承了NSObject 的對象,對基本數據類型無效    原理: 每個對象內部都保存了一個與之相關聯的整數,稱爲引用計數器(auto reference count)每當使用 a

原创 UIViewController的基本概念與生命週期

UIViewController是iOS頂層視圖的載體及控制器,用戶與程序界面的交互都是由UIViewController來控制的,UIViewController管理UIView的生命週期及資源的加載與釋放。 UIView與UIWi

原创 三目運算符的陷阱

分析:上面這個用了三目運算符的表達式,判斷條件是_timeData.startTime > 0 ,有時候定式思維就會造成我們直接把後面選項裏的第一項空掉,以爲條件爲真,就會選擇_timeData.startTime。        

原创 最新方法制作自己的cocoapods開源框架的詳細步驟

1、在GitHub上新建一個倉庫,選公開倉庫,選MIT的license,新建README.md文件; 2、克隆到本地,把你要上傳的庫放在倉庫文件夾裏,這裏我用的是界面化git工具sourceTree,當然你也可以用指令 git clo

原创 Getting start with OCMock in you unit test

1、Write pod file — Add pod into your project Attention:OCMock need to be added to the test target Then,install your po

原创 Objective-C的內省方法介紹

內省(Introspection)是面嚮對象語言和環境的一個強大特性,Objective-C和Cocoa在這個方面尤其的豐富。內省是對象揭示自己作爲一個運行時對象的詳細信息的一種能力。這些詳細信息包括對象在繼承樹上的位置,對象是否遵循特

原创 @property (nonatomic, strong) NSString *str有什麼問題

       NSString是不可變字符串,NSMutableString是NSString的子類,是可變字符串。        如果一個類有一個NSString屬性用strong修飾,如果給這個屬性一個NSString類型的字符串,

原创 GCD定時器使用筆記 及 詳細分析

<pre name="code" class="objc"> // 1.創建創建隊列,取全局併發隊列 dispatch_queue_t queue = dispatch_get_global_queue(0, 0);

原创 SDWebImage 原理及使用

SDWebImage託管在github上。https://github.com/rs/SDWebImage 這個類庫提供一個UIImageView類別以支持加載來自網絡的遠程圖片。具有緩存管理、異步下載、同一個URL下載次數控制和優化

原创 結合一道面試題 看c語言運算符的執行順序

結合一道面試題 判斷這段代碼的輸出是什麼 這個判斷條件是 先執行b[i++]!=4 再執行 a =  a的真假是循環的持續條件 注意:i++的結合順序是從左到右,所以b[i++]這個下標是先取i的值,i再進行自加。++i操作