单例类iPhone

3

好的,我尽力避免使用全局变量,所以我研究了单例类。这是一个尝试设置和读取可变数组的示例,但结果为null。

//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

在一个视图控制器中,我添加了#import "Content.h",在那里我试图调用这个方法:
NSMutableArray *mArray = [NSMutableArray arrayWithObjects:@"test",@"foo",@"bar",nil];

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

NSLog(@"contentArray: %@", [content getArray]);
2个回答

4

首先您需要分配并初始化数组。个人建议在内容类的init方法中这样做:

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

    return self;
}

3
您从未实际分配/初始化contentArray数组。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接