原创 NSNotification與KVO的區別

個人認爲主要有3點區別: 1. NSNotification由NSNotificationCenter進行統一管理,包括創建併發送通知、註冊監聽者、移除監聽者等; 2. 如果是自定義的NSNotification,必須自己進行通知的發送,

原创 SVN上傳iOS @2x或@3x的圖片時報svn E200009 Could not add all targets because some targets don't exist

How to escape @ characters in Subversion managed file names? 上面是參考地址 其實很簡單,@符號在SVN中有特殊意義,所以正確的做法是:svn add [email protected]@

原创 iOS UITabBarItem去掉系統自帶的渲染效果

NSArray *items = self.tabBarController.tabBar.items; UITabBarItem *item = items[0]; item.image = [[UIImage

原创 UITableView上的UITextField防止被鍵盤遮擋

最近項目中用到了在tableView上放UITextField,當UITextField獲取焦點時,鍵盤就會彈起,就會遮擋一部分,這時就需要做一些特殊的處理來防止鍵盤遮擋tableView,其實思路還是很簡單的,系統提供了2個通知,UIK

原创 iOS中CoreData的重要概念

1.CoreData是持久化數據的最佳方式 2.構成: (1)NSManagedObjectContext:管理對象上下文 作用:數據的增刪改查都要通過它 (2)NSManagedObjectModel:被管理對象模型 作用:添加實體的屬

原创 iOS多線程實現3種方式

1.簡介: 1.1. iOS有3種實現多線程編程的方式: (1)NSThread (2)NSOperation (3)GCD 這3種方式從上到下抽象程度由低到高,抽象度越高,使用越簡單,蘋果越推薦 1.2. 3種方式的優缺點: (1)NS

原创 OC中單例的實現方法

1.使用GCD: (1)在.h文件中提供一個類方法,用於返回該類唯一的一個對象 + (Person *)sharePerson;(2)在.m文件中聲明一個Static類型的對象,並將其置爲nil,然後實現sharePerson和alloc

原创 iOS開發之響應者鏈

1.觸摸事件的處理過程: 當用戶點擊屏幕發生觸摸事件後,會經過一系列的傳遞,找到最適合響應的那個視圖控件來處理觸摸事件。 找到該控件後,就會調用該控件的touches方法來做具體的事件處理 - (void)touchesBegan:(N

原创 iOS判斷設備的相機是否可用

if (![UIImagePickerController isSourceTypeAvailable:UIImagePickerControlle

原创 nil、Nil與NULL區別

nil指向OC中對象的空指針 Nil指向OC中類的空指針 NULL指向其他類型的空指針,如C類型的指針 NSNull在集合對象中表示空值的對象 若obj爲nil, [obj message]返回NO; 若obj爲NSNull, [obj

原创 iOS圖片壓縮成指定大小

- (UIImage *)scaleToSize:(UIImage *)img size:(CGSize)size{ // 創建一個bitmap的context // 並把它設置成爲當前正在使用的conte

原创 iOS UIKit類圖

原创 iOS刪除本地(沙盒)文件

// 獲取Library文件夾路徑 NSString *libPath = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask,

原创 C語言的Static Inline函數

Inline函數: 用Inline修飾的函數,在編譯時,編譯器會將該函數的代碼放在函數調用處,而不用跳轉到該函數的存儲位置進行執行,省去了跳來跳去的空間開銷,因此執行效率要高於普通的函數。但是,由於是用函數具體的代碼來替換函數的調用,因此

原创 iOS——@dynamic與@synthesize

1. @synthesize 告訴編譯器,自動生成getter、setter方法 2. @dynamic 告訴編譯器,不要自動生成getter和setter方法,由程序在運行時動態的創建,主要用在CoreData中,其他地方用的不多 3