这是我的单身代码:
@synthesize listOfSites;
+ (id)sharedInstance
{
static dispatch_once_t dispatchOncePredicate = 0;
__strong static id _sharedObject = nil;
dispatch_once(&dispatchOncePredicate, ^{
_sharedObject = [[self alloc] init];
});
return _sharedObject;
}
-(id)init
{
self = [super init];
if (self) {
listOfSites = [[NSMutableArray alloc] init];
}
return self;
}
@end
这几乎是教科书......但是,我想添加另一个类似于“listOfSites”的数组(称之为“listOfReadings”)。代码中写着“if(self)”让我感到困惑。
如何在此代码中添加其他数组?
答案 0 :(得分:2)
if (self) {
除了验证[super init]
是否有效以及它没有返回NULL
或其他任何内容之外什么都不做......
除此之外,您可以正常执行此操作,例如:
listOfReadings
数组(作为ivar / property?)设置
listOfReadings = [[NSMutableArray alloc] init];
或强>
listOfReadings = [[NSMutableArray alloc] initWithObjects:nil];
或 (如果是property
)
[self setListOfReadings:[[NSMutableArray alloc] initWithObjects:nil]];
示例:
-(id) init {
self = [super init];
if (self) {
listOfSites = [[NSMutableArray alloc] init];
listOfReadings = [[NSMutableArray alloc] init];
}
return self;
}
在您的NSMutableArray
文件中声明了新的.h
后
NSMutableArray* listOfReadings;
答案 1 :(得分:1)
-(id) init {
self = [super init];
if (self) {
listOfSites = [[NSMutableArray alloc] init];
listOfReadings = [[NSMutableArray alloc] init];
}
return self;
}
if(self)换句话说是“如果成功创建了当前对象,那么......”