原创 在storyboard中的靜態UITableView中拖入 UISearchBar and Search Display Controller出現的奇怪問題

     最近學習過程中想模擬一下新浪微博“發現”界面。      我在storyboard中拖入一個UITableViewController,設置這個UITableViewController的TableView爲Static Cel

原创 iOS中Block介紹(二)內存管理與其他特性

我們在前一章介紹了block的用法,而正確使用block必須要求正確理解block的內存管理問題。這一章,我們只陳述結果而不追尋原因,我們將在下一章深入其原因。 一、block放在哪裏 我們針對不同情況

原创 iOS中block介紹(三)揭開神祕面紗(上)

上一篇我們總結了各個情況下,block及其引用到的內存位置情況。接下來幾篇,我們將剖析編譯器轉碼以及運行時庫源碼來一探block的究竟。 block到底是什麼 我們使用clang的rewrite-obj

原创 Swif語法基礎 要點歸納(一)

常量和變量 用let聲明常量     let m = 20 用var聲明變量     var n = 10 類型推導機制          聲明常量或變量時,可以不指定常量/變量類型,編譯器會根據初始化值自動推導類型,也可以顯示指定變量

原创 iOS中Block介紹(一)基礎

ios開發block的使用指南,以及深入理解block的內存管理,也適用於osx開發。討論範圍:block的使用,內存管理,內部實現。不包含的內容:gc arc下的block內存,block在c++中的使用。 一、

原创 iOS多線程編程之NSOperation和NSOperationQueue的使用

前一篇  《iOS多線程編程之NSThread的使用》 介紹三種多線程編程和NSThread的使用,這篇介紹NSOperation的使用。 使用 NSOperation的方式有兩種, 一種是用定義好的兩個子類: NSInvoca

原创 iOS多線程編程之Grand Central Dispatch(GCD)介紹和使用

介紹: Grand Central Dispatch 簡稱(GCD)是蘋果公司開發的技術,以優化的應用程序支持多核心處理器和其他的對稱多處理系統的系統。這建立在任務並行執行的線程池模式的基礎上的。它首次發佈在Mac OS X 10.6

原创 CoreData 簡單使用

CoreData:封裝了Sqlite數據庫的系統自帶框架。 常用方法 @property(nonatomic,strong)NSArray *persons; 1、查詢數據: XYZAppDelegate * app = [UIAppl

原创 Search Bars(一)

A search bar provides an interface for text-based searches with a text box and buttons such as search and cancel. A sea

原创 地圖框架

使用蘋果自帶的地圖框架,需要在項目中加載MapKit.framework(項目—TARGETS--Build Phases--Link Binary With Libraries),並在頭文件中導入#import<MapKit/MapKi

原创 Notification Centers 通知中心

Notification Centers 通知中心 A notification center manages the sending and receiving of notifications. It notifies all

原创 歸檔和解歸檔

歸檔和解歸檔除了用於NSString、NSNumber、NSArray、NSDictionary等對象和NSData之間的轉換(見點擊打開鏈接),還可以用來保存別的對象,如保存界面上的view對象。 對象歸檔必須做兩件事情: 1.對象必須

原创 iOS中block介紹(四)揭開神祕面紗(下)

終於有空開始這系列最後一篇的編寫。這一篇,我們將看到block的內存管理的內部實現,通過剖析runtime庫源碼,我們可以更深刻的理解block的內存運作體系。 AD:WOT2015 互聯網運維與開發者大會 熱銷搶票

原创 NSData和NSMutableData

     NSData和NSMutableData存儲的是二進制數據,在文件操作,網絡,以及核心圖形圖像中使用較廣泛。NSData創建後不可以再修改,NSMutableData可以再次修改。 1、NSString和NSData之間的轉換

原创 進程與線程

主線程裏面執行耗時操作會導致界面阻塞,所以一般把耗時操作放到子線程執行,例如網絡請求、線程睡眠、加載文件、大量運算。 1、不要把耗時操作放到主線程。 2、不要把修改頁面的代碼放到子線程(子線程修改頁面不會等到及時更新) 第一種開啓子線程