2015-03-30 89 views
0

我创建了以下类,当我尝试将类导入另一个文件,创建实例并获取或设置任何属性时,它不起作用。我发现在调试时发现,当我创建一个类的实例时,它保持不变。xcode class stays nill

当我看到,我做了类似下面的init方法来分配内存的性能:

-(id)init{ 
    self = [super init]; 
    if(self){ 
     numberName = [[NSString alloc] init]; 
     numberNode = [[CCNode alloc] init]; 
    } 

    return self 
} 

它仍然没有工作,调试时的类的实例保持nill。 (我也试图创建自己的getter和setter方法,但是我geuss这不是因为它并没有被摆在首位初始化的问题的一部分。)

.h文件中:

#import <Foundation/Foundation.h> 

@interface Number : NSObject 

@property (nonatomic, assign) NSInteger numberId; 
@property (nonatomic, strong) NSString *numberName; 
@property (nonatomic, strong) CCNode *numberNode; 

@end 

.m文件:

#import "Number.h" 

@implementation Number 

@synthesize numberId; 
@synthesize numberName; 
@synthesize numberNode; 

@end 
+0

以上所有看起来大多都没问题;我不得不在初始化例程中将下划线('_')放在ivars前面(FYI:您不再需要@synthesize)......您是如何创建实例的? – geowar 2015-04-01 14:07:00

回答

2

您无法返回初始化对象。

-(id)init{ 
    self = [super init]; 
    if(self){ 
     numberName = [[NSString alloc] init]; 
     numberNode = [[CCNode alloc] init]; 
    } 

    return self; // <---- This is what you're missing. 
} 
+0

对不起,忘了输入。我已经返回自己,否则会产生一个错误! – Sliver2009 2015-03-30 19:24:23

+0

好的。纠正你的问题,人群可以从那里出发。我们只能用你给我们的东西来工作。 – 2015-03-30 19:26:07