Xcode上奇怪的编译时错误

时间:2011-11-08 16:38:29

标签: iphone xcode syntax-error compile-time

xcode 4.2中的

代码

Game 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

Game 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

我完全(或几乎完全)和书中一样,但我收到了错误消息:

  • 将Objective-C指针隐式转换为'struct objc_class *'不允许使用ARC
  • 成员引用类型'struct objc_class *'是一个指针;也许你打算用' - &gt;'?
  • 类型'struct objc_class'的不完整定义自动引用计数问题:
  • 将Objective-C指针隐式转换为'struct objc_class ARC不允许使用* 我根本不知道这些错误! 请帮帮我!

2 个答案:

答案 0 :(得分:5)

description不是类方法,而是实例方法。您创建的是一种类方法:+(NSString*)description;。您不应尝试在类方法中访问实例属性(ivars)。将+更改为-。祝你好运!

答案 1 :(得分:0)

我认为您正在尝试引用此

[super description]

这可能会使一些事情变得混乱,如果没有它就会尝试返回,看看会发生什么

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