两个UITableView的UITableViewDataSource相同

时间:2013-01-19 11:29:54

标签: ios objective-c uitableview

我正在使用最新的SDK和XCode 4.5.2开发iPhone应用程序。

在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,但我不知道是否可以使用静态变量执行此操作。

2 个答案:

答案 0 :(得分:1)

您的代码可以正常工作,但在您的情况下使用静态变量没有意义。只需使用局部变量。另请注意,您可以直接比较指向UITableView的指针,此处不必使用isEqual

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

(我假设shopsList是表格视图之一。)

答案 1 :(得分:-1)

静态变量只能赋值一次。

在这种情况下,您可以使用两个不同的CellIdentifier,例如 -

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

如果有效,请告诉我。)