2013-05-08 12 views
1

在iOS5和6中,我可以使用其重用標識符(在故事板中註冊)檢索表格視圖或集合視圖的單元格。我看到的大部分代碼示例在cellForItemAtIndexPath方法中定義了一個靜態NSString標識符。這對我來說似乎並不直觀 - 每次調用此方法時,重用標識符是否會重新分配?iPhone iOS什麼是實例化靜態NSString單元重用標識符的正確方法?

在我自己的代碼中,我在方法調用外拉動靜態賦值,以確保它只執行一次。

一個愚蠢的問題,但如何實例化靜態NSString只有一次?

//should I define it here, outside the method? 
static NSString *kCellID = @"kCellID"; 

- (UICollectionViewCell *)collectionView:(UICollectionView *)cv cellForItemAtIndexPath:(NSIndexPath *)indexPath; 
{ 
//or should I define it here, within the method? 
static NSString *kCellID = @"kCellID"; 


//retrieve cell using the identifier 
} 

回答

2

由於標識符本身是一個常量字符串,因此除了可讀性以外,製作靜態本身並沒有什麼特別的好處。使它成爲全局使它在任何地方都可用,並且從頭開始創建和管理內存作爲常量塊,否則它在代碼內創建時創建一次。任何

1

在函數內部靜態變量被初始化時執行的功能的第一時間,而一個全局靜態會在啓動時初始化。

本地靜態效率稍低,但在封裝方面更加整潔。

相關問題