2011-12-06 36 views
0

我简单单是这样的:的NSMutableArray总是返回计数0 /永远保留它的对象

@interface MyClass : NSObject { 
    NSMutableArray * myArray; 
} 

+ (MyClass*) instance; 
@property(nonatomic,retain)NSMutableArray *myArray; 

然后在执行

static MyClass * myinstance; 
@synthesize myArray; 

+ (MyClass*) instance { 
    if(myinstance == nil) 
     myinstance = [[MyClass alloc] init]; 

    return myinstance; 
} 


- (id) init { 
    if(self = [super init]) { 
     myArray = [[NSMutableArray alloc] initWithCapacity:2]; 
     [myArray addObject:@"Trauma"]; 
    } 
    return self; 
} 

然而,当我尝试访问它的tableview总是返回0:

[[[MyClass instance] myArray] count]; 

不知道我在做什么错了

+0

此代码看起来像它会工作。我会建议您的应用程序中的实际代码有一个错误。那么你在做什么与你在这里发布的内容有所不同呢? –

回答

2

返回单例实例的方法名为+instance,但试图访问您的单例时,您正在使用+myinstanceMyClass的实例最有可能为零。

+0

我很惊讶,问题中的代码没有给出编译器错误。 – jrturton

+0

它必须产生至少一个警告,但是谁知道这个警告列表有多大;) –

+0

其实这是一个错字:我已经将我的代码的名称转换为更一般的代码。现在编辑...(另外我编译器有0个警告:p) – Msencenb

相关问题