2010-01-17 20 views
3

好吧,我試圖避免全局變量,所以我讀了單身人士班。 這是嘗試設置和讀取可變數組,但結果爲空。單身類iPhone

//Content.h 

@interface Content : NSObject { 
    NSMutableArray *contentArray; 
} 

+ (Content *) sharedInstance; 

- (NSMutableArray *) getArray; 
- (void) addArray:(NSMutableArray *)mutableArray; 


@end 

//Content.m 

@implementation Content 



static Content *_sharedInstance; 

+ (Content *) sharedInstance 
{ 
    if (!_sharedInstance) 
    { 
     _sharedInstance = [[Content alloc] init]; 
    } 

    return _sharedInstance; 
} 

- (NSMutableArray *) getArray{ 
    return contentArray; 

} 

- (void) addArray:(NSMutableArray *)mutableArray{ 

    [contentArray addObject:mutableArray]; 

} 

@end 

而且在我的ViewController添加#進口 「Content.h」,在這裏我嘗試調用此:

NSMutableArray *mArray = [NSMutableArray arrayWithObjects:@"test",@"foo",@"bar",nil]; 

Content *content = [Content sharedInstance]; 
[content addArray:mArray]; 

NSLog(@"contentArray: %@", [content getArray]); 

回答

4

您需要首先分配並初始化數組。個人而言,我會做它的內容類的init方法,像這樣:

-(id)init{ 
    if(self = [super init]){ 
     …the rest of your init code… 
     contentArray = [[NSMutableArray alloc] init]; 
    } 

    return self; 
} 
+0

完美,感謝您的代碼 – scud 2010-01-17 23:21:42

+0

投了,是有益的。謝謝! – Alex 2013-01-08 16:44:57

3

你從來沒有真正分配/初始化contentArray陣列。

+1

你是完全正確的,謝謝你 – scud 2010-01-17 23:22:45