2011-11-08 9 views
1

コードは4.2奇妙なコンパイル時エラーがXcodeで

ゲームModel.h

#import <Foundation/Foundation.h> 

@interface Game_Model : NSObject{ 
    NSString *playerName; 
    int play; 
    int won; 
} 

@property (nonatomic,retain) NSString *playerName; 
@property (nonatomic,readonly,assign) int play; 
@property (nonatomic,readonly,assign) int won; 
@end 

ゲームModel.m

#import "Game Model.h" 

@implementation Game_Model 
@synthesize playerName,play,won; 

+(NSString *)description{ 
    return [NSString stringWithFormat:@"%@. Player:%@. Score: %d/%d",[super description],self.playerName,self.won,self.play]; 
} 
@end 

私はのように正確に作られた(またはほぼ正確に)書籍ですが、エラーメッセージが表示されます:

  • 暗黙のconversio 'struct objc_class*'へのObjective-Cポインタのnは、ARCで許可されていません。
  • メンバー参照型 'struct objc_class *'はポインタです。多分あなたは ' - >'を使うつもりでしたか?
  • タイプの不完全な定義は「構造体objc_class」自動参照カウントの問題:
  • にObjective-Cのポインタの暗黙の変換「構造体は *をobjc_classが」ARC で禁止されて私は、単にこれらのエラーについては考えています! 私を助けてください!少し周り

答えて

5

descriptionクラスメソッドではなく、インスタンスメソッドです。あなたが作成するのはクラスメソッドです:+(NSString*)description;。クラスメソッドでインスタンスプロパティ(ivars)にアクセスしないでください。 +-に変更してください。がんばろう!

+0

それはまさに問題でした!私がやりたかったのは、そのメソッドをオーバーライドすることでした。どうもありがとうございました! –

0

私はあなたがこの

[super description] 

を参照しようとしていることを考えると、このかもしれない混乱のものは、そのせずにリターンを試してみて、何が起こるか見

return [NSString stringWithFormat:@"Player:%@. Score: %d/%d",self.playerName,self.won,self.play]; 
+0

前回の投稿ですべての問題を解決しましたが、とにかくありがとうございました。 –