单件类iPhone

单件类iPhone,iphone,singleton,global-variables,Iphone,Singleton,Global Variables,好的,我试图避免全局变量,所以我阅读了关于单例类的文章。 这是尝试设置和读取可变数组,但结果为空 //Content.h @interface Content : NSObject { NSMutableArray *contentArray; } + (Content *) sharedInstance; - (NSMutableArray *) getArray; - (void) addArray:(NSMutableArray *)mutableArray; @end

好的,我试图避免全局变量,所以我阅读了关于单例类的文章。 这是尝试设置和读取可变数组,但结果为空

//Content.h

@interface Content : NSObject {
    NSMutableArray *contentArray;
}

+ (Content *) sharedInstance;

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


@end

在一个ViewController中,我添加了#import“Content.h”,我尝试将其称为:

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

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

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

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

您需要先分配并初始化数组。我个人会在content类的init方法中这样做:

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

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

    return self;
}