原创 IOS---Block(截獲自動變量值)

先上代碼: int main() { int dmy = 256; int val = 10; const char *fmt = "val = %d\n"; void (^blk)(void) =

原创 IOS UITableView 局部刷新

//局部section刷新 NSIndexSet * nd=[[NSIndexSet alloc]initWithIndex:1];//刷新第二個section [tview reloadSections:nd w

原创 IOS數據存儲之---Core Data

前言 個人理解core data是數據持久化存儲的最佳方式; 存儲的數據類型可以是:SQLite數據庫、XML、二進制、內存、或自定義的數據類型; 能夠合理管理內存,高效 構成 (1)NSManagedObjectContex

原创 HTTP與HTTPS最重要的差別

HTTP與HTTPS之間最重要的差別在於會話的連接建立階段。在TCP連接建立好、HTTP請求發送前,客戶端與服務器之間必須建立SSL會話。SSL會話建立包含多個階段:客戶端與服務器協商使用何種密碼、交換公鑰、驗證協商以及驗證身份(

原创 iOS 類別 ---不能添加屬性

category只能擴展類的方法,不能擴展類的屬性。如果要擴展類的屬性,可以用associative,這個相對於category來說用的比較少,而且他還用到運行時編程,必須使用 @interface UIView (Loading) @

原创 View Controller的生命週期

1、initWithNibName 、 init init中應該只有相關數據的初始化,而且這些數據都是比較關鍵的數據,不能出現創建view的代碼,也不能夠調用self.view,否則會導致viewController創建

原创 atomic && nonatomic那些事兒

atomic: 設置成員變量的@property屬性時,默認爲atomic,提供多線程安全。 加了atomic,setter函數會變成下面這樣: {lock}

原创 iOS 緩存機制 (以SDWebImage 緩存圖片爲例)

在iOS開發過程中,經常要用到緩存機制,那麼如何較爲好的設計一個緩存機制呢?在這裏,小編以SDWebImage爲例,說一下這個緩存機制: UIImageView+WebCache: setImageWithURL:placeholde

原创 iOS @property

@property會自動合成存取方法,若不想令編譯器自動合成存取方法,則可自己實現。 ①自己寫getter和setter,但如果只寫了一個,另一個,還是由編譯器來自動合成; ②使用@dynamic,它會告訴編譯器:不要自動創建實現屬性所

原创 類方法和實例方法 那些事兒

Objective-C中的方法有兩種:類方法(class method)和實例方法(instance method)。類方法被限定在類範圍內,不能被類的實例調用(即脫離實例運行)。alloc就是一種類方法。實例方法限定在對象實例的範圍內(

原创 iOS runloop 那些事兒

RunLoop是事件接收和分發機制的一個實現,提供了一種異步執行代碼的機制,不能並行執行任務。 在主隊列中,Main RunLoop直接配合任務的執行,負責處理UI事件、定時器以及其他內核相關事件。 RunLoop目的:保證程序執行的線程

原创 UIWindow

UIWindow ,是iOS程序啓動完畢後,創建的第一個視圖控件,接着創建控制器的view,最後將控制器的view添加到UIWindow上,於是控制器的view就顯示在屏幕上了。 (補充:創建的第一個對象是UIApplication)

原创 Category添加屬性

前言 在一般情況下,我們是不能向Category中添加屬性的,只能添加方法,但有些情況向,我們確實需要向Category中添加屬性 實例 #import <Foundation/Foundation.h> #import <objc/ru

原创 iOS性能優化那些事

初級篇: 1. 用ARC管理內存 2. 在正確的地方使用reuseIdentifier 3. 儘可能使Views不透明 4. 避免龐大的XIB 5. 不要block主線程 6. 在Image Views中調整圖片大小 7.

原创 iOS---NSArray和NSSet的區別

NSArray和NSSet所實現的基本功能其實都差不多,這和其他語言如java有很大差別,NSArray的存儲數據的方式是連續的,後一個數據在內存中是緊接着前一個數據的,而NSSet在存儲的時候並不是需要一塊連續的內存,有可能我第一個數據