-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 に答える