2011-11-08 99 views
1

代碼在Xcode 4.2怪異編譯時錯誤

遊戲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 

我做出準確(或幾乎完全一致),如一本書,但我得到了錯誤信息:

  • 隱式轉換n指向'struct objc_class *'的Objective-C指針不允許使用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

我沒有發現這篇文章很有用,因爲我解決了之前發佈的所有問題,不過謝謝! –