我收到了一个奇怪的编译错误 - 我不知道机器中是否存在“幽灵”还是什么?
以下是我收到此错误的代码段
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:CellIdentifier] autorelease];
}
cell.selectionStyle = UITableViewCellSelectionStyleNone;
if (indexPath.section == 0) {
switch (indexPath.row) {
case 0:
cell.textLabel.text = @"User";
cell.detailTextLabel.text = @"John Smith";
break;
case 1:
cell.textLabel.text = @"From";
cell.detailTextLabel.text = @"12/01/2010";
break;
case 2:
cell.textLabel.text = @"To";
cell.detailTextLabel.text = @"12/02/2010";
break;
case 3:
cell.textLabel.text = @"Duration";
cell.detailTextLabel.text = @"30 Days";
break;
case 4:
UITextView *commentsView = [[UITextView alloc] initWithFrame:CGRectMake(0, 0, 300, 44)];
//commentsView.layer.cornerRadius = 10.0f;
//[cell.contentView addSubview:commentsView];
//[commentsView release];
break;
default:
break;
}
} else if (indexPath.section == 1) {
cell.detailTextLabel.text = @"Approve";
} else {
cell.detailTextLabel.text = @"Reject";
}
// Configure the cell...
return cell;
}
我收到以下错误
/Users/dk/Desktop/xxx/Classes/DetailedLeaveRequestViewController.m:103:0
/Users/dk/Desktop/xxx/Classes/DetailedLeaveRequestViewController.m:103: error: expected expression before 'UITextView'
在第
行UITextView *commentsView = [[UITextView alloc] initWithFrame:CGRectMake(0, 0, 300, 44)];
案例4:
我一遍又一遍地检查了语法和所有内容,但是没有发现任何问题。 奇怪的是当我试图编译案例3的最后一行下面的行时:(正好在中断之上;)它编译并正确运行。 我们不能在case语句中声明和初始化一个对象吗? 我错过了一些相当基本的东西吗?
感谢。
答案 0 :(得分:2)
您需要在case语句中添加一个块限制器:
case 4:{
UITextView *commentsView = [[UITextView alloc] initWithFrame:CGRectMake(0, 0, 300, 44)];
}
或在switch语句之外移动变量声明