好的,我正在努力避免全局变量,所以我读了单例类。 这是尝试设置和读取可变数组,但结果为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
在ViewController中,我添加了#import“Content.h”,我试着这样称呼它:
NSMutableArray *mArray = [NSMutableArray arrayWithObjects:@"test",@"foo",@"bar",nil];
Content *content = [Content sharedInstance];
[content addArray:mArray];
NSLog(@"contentArray: %@", [content getArray]);
答案 0 :(得分:4)
您需要先分配并初始化数组。就个人而言,我会在内容类的init方法中这样做:
-(id)init{
if(self = [super init]){
…the rest of your init code…
contentArray = [[NSMutableArray alloc] init];
}
return self;
}
答案 1 :(得分:3)
您永远不会实际分配/初始化contentArray
数组。