原创 iOS 學習資料整理
這份學習資料是爲 iOS 初學者所準備的, 旨在幫助 iOS 初學者們快速找到適合自己的學習資料, 節省他們搜索資料的時間, 使他們更好的規劃好自己的 iOS 學習路線, 更快的入門, 更準確的定位的目前所處的位置. 該文檔會持續
原创 iOS開發—手動解析CrashLog(二)
在上篇文章《手動解析CrashLog之——方法篇》裏介紹了手動解析CrashLog的方法,接下來再說說dwarfdump、atos等解析工具是如何從符號表文件中獲取到崩潰位置信息的。一切還得從.dSYM符號表文件開始說起。 一、.d
原创 iOS動畫進階(十五)圖層性能
圖層性能 要更快性能,也要做對正確的事情。 ——Stephen R. Covey 在第14章『圖像IO』討論如何高效地載入和顯示圖像,通過視圖來避免可能引起動畫幀率下降的性能問題。在最後一章,我們將着重圖層樹本身,以發掘最好的性能
原创 Objective-C Runtime
原文轉自:http://tech.glowing.com/cn/objective-c-runtime/ Objective-C 擴展了 C 語言,並加入了面向對象特性和 Smalltalk 式的消息傳遞機制。而這個擴展的核心是一個用 C
原创 object-c 利器之KVO深究(一)-- KVO實現原理
iOS開發中,監聽對象某一屬性變化而做出響應的模式十分常用,俗稱,觀察者模式。 具體用法十分簡單,我們只需給想要監聽的對象添加一個觀察者就可以實現靈動的操控。如: @interface NSObject(NSKeyValueObse
原创 深究block
想了半天不知道怎麼開頭,那就直接開始吧。 其實block在工作中用到的地方很多,功能很強大,只是以前老是聽人說:“block會有很多坑,不熟悉的話還是用delegate代替吧”,自己也就知難而退。最近決定深究一下block,以後要廣泛使用
原创 Mac 解析xlog文件
1,安裝Python 2.7x 2,下載安裝pyelliptic1.5.7 https://github.com/yann2192/pyelliptic/releases/tag/1.5.7 解壓縮 終端,
原创 黑幕背後的__block修飾符
我們知道在Block使用中,Block內部能夠讀取外部局部變量的值。但我們需要改變這個變量的值時,我們需要給它附加上__block修飾符。 __block另外一個比較多的使用場景是,爲了避免某些情況下Block循環引用的問題,我們
原创 iOS開發—手動解析CrashLog(一)
解決崩潰問題是移動應用開發者最日常的工作之一。如果是開發過程中遇到的崩潰,可以根據重現步驟調試,但線上版本就無能爲力了。好在目前已經有很多不錯的第三方CrashLog蒐集平臺(如友盟、Crashlytics等)爲我們做好了解析工作,
原创 iOS動畫進階(十三)高效繪圖
高效繪圖 不必要的效率考慮往往是性能問題的萬惡之源。 ——William Allan Wulf 在第12章『速度的曲率』我們學習如何用Instruments來診斷Core Animation性能問題。在構建一個iOS app的時候
原创 <轉>趣談unicode,ansi,utf-8,unicode big endian這些編碼有什麼區別
偶然看到,挺有意思,轉發擴散~ 原文地址:http://blog.csdn.net/fanwenbo/article/details/2298800 從頭講講編碼的故事。那麼就讓我們找個草堆坐下,先抽口煙,看看夜晚天空上的銀河,然後想一
原创 iOS 7+,使用原生API生成QRCode。
iOS 7之後,可以通過原生API生成QRCode。 - (UIImage *)private_generateQRCodeImageWithContent:(NSString *)content { // 生成二維碼 C
原创 使用iOS 原生AES加密
// 和服務端約定:KeySize:kCCKeySizeAES128, Padding:PKCS7, mode:ECB, BlockSize:kCCBlockSizeAES128 - (NSString *)private_encrypW
原创 iOS開發中,__attribute__ 使用場景
在AvailabilityMacros.h 裏,定義了很多有用的宏: 1,__attribute__(( deprecated())) 在外邊使用Model的屬性或方法時,編譯器就會提出警告,形如下圖: 這樣在廢棄有些屬性時,可
原创 @synthesize name = _name;
下午突然碰到一個問題: Class.h @interface Class : NSObject @property (nonatomic, copy) NSString *name; @end Class.m @implementa