2013-01-19 30 views
1

我正在開發一個iPhone應用程序與最新的SDK和XCode 4.5.2。相同的UITableViewDataSource爲兩個UITableView

在ViewController上我有兩個UITableView。兩者使用相同的UITableViewDataSource。我的問題是關於static NSString* CellIdentifier;

我可以做以下嗎?

- (UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString* CellIdentifier; 
    SingletonGlobalVars* singleton = [SingletonGlobalVars sharedInstance]; 

    if ([tableView isEqual:shopsList]) 
    { 
     CellIdentifier = @"ShopCell"; 
    } 
    else 
    { 
     CellIdentifier = @"ProductCell"; 
    } 

    [ ... ] 
} 

我需要改變CellIdentifier,但我不知道如果我能做到這一點與一個靜態變量

+0

設定每個實現代碼如下對象兩個不同的標記,並檢查代碼。願這爲你工作。 – Exploring

回答

1

您的代碼將工作,但使用靜態變量沒有意義的你的情況。只需使用局部變量。還要注意,你可以直接比較指向UITableView的指針,在這裏沒有必要使用isEqual

NSString* cellIdentifier; 
if (tableView == shopsList) 
{ 
    cellIdentifier = @"ShopCell"; 
} 
else 
{ 
    cellIdentifier = @"ProductCell"; 
} 

(我假設shopsList是表視圖中的一個。)

-1

靜態變量只能賦值一次。

你可以在這種情況下,像使用兩種不同的CellIdentifiers -

static NSString* CellIdentifierShop = @"ShopCell"; 
static NSString* CellIdentifierProduct = @"ProductCell"; 

請讓我知道,如果它的工作原理:)

+5

這是不正確的,可以修改一個靜態變量。 –

+0

謝謝。這對我來說是一個新的學習:) 可能我對別的東西感到困惑。 謝謝:) – vshall

相關問題