我正在使用最新的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
,但我不知道是否可以使用静态变量执行此操作。
答案 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";
如果有效,请告诉我。)