2011-09-11 10 views
-2

私はこれを学習としてやっており、NSStringの戻り値の型が正しくないと言われています。このプロトコルの宣言で何が問題になりますか?

それはタイプが(NSString*)ない(NSString)

@protocol MyExampleProtocol <NSObject> 

@required 
@property (nonatomic,retain) NSString *model; 
@property (nonatomic,retain) NSString *resgisteration; 
-(NSString) getModelAndRegistration(); 
@optional 
@property (nonatomic,retain) NSString *engine; 
@property (nonatomic,retain) NSString *chasis; 
-(NSString) getEngineAndChasis(); 
@end 

答えて

4

はい、NSStringはプリミティブ型ではないため、NSStringオブジェクトへのポインタを返す必要があります。したがって、あなたはまた

- (NSString *) getEngineAndChasis; 

を使用する必要があり、

+0

私の先生でさえそれを選んだとは思わない、それは私のJavaの話だった:)ありがとう。 –

+0

+1私を訂正する:) – Mahesh

2

なければならないということである、それは、はい

(NSStringの*)ではない(NSStringの)タイプがあるべきことを戻り値の型ですべきNSString*とする。 Objective-Cでは、int、floatなどのプリミティブデータ型を除いてすべてのものが参照です。また、C++のようにメンバ関数の末尾には()もありません。

+0

これらは、Objective-Cで使用されていない、括弧をドロップ彼はまた、メソッド宣言の末尾に括弧をドロップする必要があります。 – ophychius

+0

ありがとうございます。それに気付かなかった。編集されました。 – Mahesh

+0

彼はあなたに何度も感謝し、あなたを賞賛するので、他の人を受け入れています。 –

関連する問題