2011-12-06 67 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

相關問題