-1

我是编码新手,我通过观看教程和查看 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];
    }
}
4

1 回答 1

1

您的代码可能不是格式错误,而是位于错误的位置。显然,clang 认为,“-(NSString*)”是表达式的开头,一元减号运算符应用于转换为 NSString* 的内容。当然,您不能将“-”应用于参考。

执行以下检查:

  1. @implementation ... @end 中的方法是什么?
  2. 该方法是否在任何其他方法之外?一个简单的被遗忘的 } 会将方法放在另一个方法中,这使文本对编译器具有完全不同的含义。

使用 Xcode 的重新缩进功能重新缩进整个源文件是个好主意。

这是您错误的示例:

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

铛:

Invalid argument type 'NSString *' to unary expression
于 2013-05-30T09:00:39.023 回答