如何修复错误:无效的参数类型' NSString *'一元表达式(xCode4)

时间:2013-05-29 14:45:17

标签: iphone ios objective-c nsstring

我是编码的新手,我正在通过观看教程并在Google上查看发布的论文来教自己,我正在关注来自南伊利诺伊大学的Seth Whiting和Mark Dixon发布的iPhone应用程序文章,我在跟踪他们的时候收到错误模型,不知道如何解决它。错误:无效参数类型'NSString *'到一元表达式

-(NSString*)pickerView:(UIPickerView*)pickerView titleForRow:(NSInteger)rowforComponent: (NSInteger)component{
    if (component==clientComponent){
        return [clientName objectAtIndex:row];
    }
    if (component==bxComponent) {
        return [problemBx objectAtIndex:row];
    }
    if (component==antComponent) {
        return [anteCedent objectAtIndex:row];
    }
    if (component==conComponent){
        return [conSequence objectAtIndex:row];
    }
}

1 个答案:

答案 0 :(得分:1)

可能您的代码没有格式错误,但位于错误的位置。显然clang认为,“ - (NSString *)”是一个表达式的开头,一元减号运算符应用于赋予NSString *的东西。当然,您不能将“ - ”应用于参考文献。

进行以下检查:

  1. 该方法是否在@implementation ... @end?
  2. 该方法是否超出任何其他方法?一个简单的遗忘}将把方法放在另一个方法中,这给了文本一个完全不同的编译器含义。
  3. 使用Xcode的重新登录功能重新整理源文件是个好主意。

    以下是您的错误示例:

    @implementation Subclass
    - (void)method
    {
        id pickerView;
    -(NSString*)pickerView:(UIPickerView*)pickerView titleForRow:(NSInteger)rowforComponent: (NSInteger)component{
    }
    @end
    

    铛:

    Invalid argument type 'NSString *' to unary expression