将项目转换为使用 ARC 时,“switch case 在受保护范围内”是什么意思?我正在使用 Xcode 4 Edit -> Refactor -> Convert to Objective-C ARC 将项目转换为使用 ARC …我得到的错误之一是“某些”开关上的“开关盒在受保护范围内”一个开关盒。
编辑,这是代码:
错误标记在“默认”情况下:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @""; UITableViewCell *cell ; switch (tableView.tag) { case 1: CellIdentifier = @"CellAuthor"; cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; } cell.textLabel.text = [[prefQueries objectAtIndex:[indexPath row]] valueForKey:@"queryString"]; break; case 2: CellIdentifier = @"CellJournal"; cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; } cell.textLabel.text = [[prefJournals objectAtIndex:[indexPath row]] valueForKey:@"name"]; NSData * icon = [[prefJournals objectAtIndex:[indexPath row]] valueForKey:@"icon"]; if (!icon) { icon = UIImagePNGRepresentation([UIImage imageNamed:@"blank72"]); } cell.imageView.image = [UIImage imageWithData:icon]; break; default: CellIdentifier = @"Cell"; cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; } break; } return cell; }
用大括号围绕每个案例本身{}。那应该可以解决问题(在我的一个项目中对我有用)。
{}