预期的标识符或'('在xcode 4.6.1中

时间:2013-04-10 18:38:31

标签: objective-c xcode

我正在尝试使用添加按钮向表中添加行,然后可以对其进行编辑。 我得到了预期的标识符或'('代表第10,17和30行。这是代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
    UILabel *lblName = (UILabel *)[cell viewWithTag:100];
    [lblName setText:[intervalArray objectAtIndex:[indexPath row]]];
    return cell;
}

if (cell == nil) {
    cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
                                   reuseIdentifier:CellIdentifier];
    cell.accessoryType = UITableViewCellAccessoryNone;
}


if ([indexPath section]) == 0 {
    UITextField *workoutTextField = [[UITextField alloc] initWithFrame:CGRectMake(110, 10, 185, 30)];
    workoutTextField.adjustsFontSizeToFitWidth = YES;
    workoutTextField.textColor = [UIColor blackColor];
    if ([indexPath row] == 0) {
        workoutTextField.placeholder = @"...";
        workoutTextField.keyboardType = UIKeyboardTypeEmailAddress;
        workoutTextField.returnKeyType = UIReturnKeyNext;

 }}

// Configure the cell...

return cell;

我已经尝试了你的建议,他们摆脱了所有的错误,但我仍然无法使用按钮向我的表添加行。关于如何向表中添加行的任何建议都将非常感激,这是我的第一个iOS应用程序,我对编程一般都很新。感谢您的帮助! 我使用的是OS X 10.8.3

2 个答案:

答案 0 :(得分:3)

我认为你错在了一个括号:

if ([indexPath section]) == 0 {

你的意思是:

if ([indexPath section] == 0) {

这里的方括号括起方法调用消息发送indexPath;括号括起您正在制作的条件比较,即检查调用[indexPath section]的结果是否等于零。

编辑:您可能还会有一个结束大括号 - 第7行的}会关闭方法-tableView:cellForRowAtIndexPath:的整个实现。您可能希望将其一直移到return cell;语句下方。

答案 1 :(得分:1)

第10行和第17行的条件以及第30行的return语句属于哪种方法?它们似乎停留在您的实现文件中,这使编译器感到困惑。

简单地移动结束-tableView:cellForRowAtIndexPath:的大括号将修复错误,但由于您在第7行返回值(结束方法的执行),其余代码将不会执行任何操作。