1

这是我的单例代码:

@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”)。说“如果(自我)”的代码让我感到困惑。

如何向此代码添加另一个数组?

4

2 回答 2

2

if (self) {除了验证它[super init]是否有效之外什么都不做 - 并且它没有返回NULL或任何东西......

除此之外,您可以正常执行此操作,例如:

  • 声明一个listOfReadings数组(作为 ivar/属性?)
  • 设置它

    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;
于 2012-04-14T22:12:59.350 回答
1
-(id) init {
self = [super init];
if (self) {
    listOfSites    = [[NSMutableArray alloc] init];
    listOfReadings = [[NSMutableArray alloc] init];
}
return self;

}

if (self) 换句话说就是“如果当前对象被成功创建,那么……”

于 2012-04-14T22:16:26.680 回答