原创 valid Palindrome -- leetcode

125 Valid Palindrome Given a string, determine if it is a palindrome, considering only alphanumeric characters and

原创 NSURLSession 簡介

步驟: (1) 得到 session 對象, NSURLSession *session = [NSURLSession sharedSession]; (2) 創建一個task, 任何一個請求都是一個任務 NSURLSess

原创 XML 數據解析方式

XML 全稱是 Extensible Markup Language,譯作“可擴展標記語言”, 是常用的一種用於交互的數據格式, 一般也叫XML文檔(XML Document). XML 舉例: <videos> <vid

原创 網絡狀態監測

IOS開發過程中網絡狀態的監測 (1) 蘋果自帶的Reachability 注意:Build Phases 中的 Compile Sources中Reachability.m設置 核心代碼: @property (non

原创 淺析 Get 和 Post 的區別

基本請求簡介 Http 定義了與服務器交互的不同方法,最基本的方法有4種,分別是GET,POST,PUT,DELETE。 GET,POST,PUT,DELETE就對應着對這個資源的查,改,增,刪4個操作。到這裏,大家應該有個大概

原创 淺析 KVO 內部實現

KVO 全稱是Key Value Observing,翻譯成鍵值觀察。提供了一種當其它對象屬性被修改的時候能通知當前對象的機制。 KVO 的基本使用: (1)註冊指定Key路徑的監聽器: /** 參數 *

原创 Quartz 2D簡介

什麼是Quartz2D? Quartz 2D是一個二維繪圖引擎,同時支持iOS和Mac系統 Quartz 2D能完成的工作 繪製圖形 : 線條\三角形\矩形\圓\弧等 繪製文字 繪製\生成圖片(圖像) 讀取\生成PDF

原创 Sqrt(x) -- leetcode

題目描述: Implement int sqrt(int x). Compute and return the square root of x. 如果輸入的是正整數,並且,輸出int類型的話,可以用二分查找的方法。 對於一個

原创 Core Animation - 核心動畫

Core Animation,中文翻譯爲核心動畫,它是一組非常強大的動畫處理API,使用它能做出非常炫麗的動畫效果,而且往往是事半功倍。也就是說,使用少量的代碼就可以實現非常強大的功能。 開發步驟: 創建一個新的圖層; 初始化一

原创 Swap Nodes in Pairs -- leetcode

題目描述: Given a linked list, swap every two adjacent nodes and return its head. For example, Given 1->2->3->4, you

原创 Generate Parentheses -- leetcode

題目描述: Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses. 題目大意

原创 排序算法(OC實現)

排序的分類: 交換類排序:冒泡排序、快速排序 插入類排序:直接插入排序、希爾排序 選擇類排序:簡單選擇排序、堆排序 交換類排序 冒泡排序 時間複雜度:最好(有序情況下)O(n),平均(逆序情況下)O(n^2) 空間複雜度:O

原创 runtime 實現 歸檔和解檔

runtime 是一套比較底層的純 C 語言 API, 平時寫的 OC 代碼都會轉成 runtime 的 C 語言代碼. 利用 runtime 可以動態的創建類(例如KVO的底層實現), 動態的創建修改方法和屬性. 在自定義歸

原创 UIBlurEffect 毛玻璃特效實現

iOS 8 後使用 UIBlurEffect 類和 UIVisualEffectView 類添加毛玻璃特效更加便捷,高效。 //創建ImageView IImageView *imageView = [[UIImageView a

原创 C++實現進制轉換

Linux內核中只有atoi()函數,被包含在stdlib.h頭文件中,而沒有itoa()函數,不過,itoa()函數的功能可以用sprintf()函數代替。 //10 --> 8: char s[100] = {0}; sp