1

我正在使用最新的 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,但我不知道我是否可以用静态变量来做到这一点。

4

2 回答 2

1

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

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

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

于 2013-01-19T11:53:57.840 回答
-1

静态变量只能赋值一次。

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

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

请让我知道它是否有效:)

于 2013-01-19T11:46:35.793 回答