NSMutableSet addObject成功但在for循环中消失了吗?

时间:2015-09-24 06:18:40

标签: ios objective-c memory-management automatic-ref-counting

我的数据结构如下所示:

    -(void)renewTimeSpotArray{
        NSMutableArray *tempArray = [NSMutableArray new];
        for (int i = 0; i < 7; i++) {
            NSMutableArray *weekdayArray = [NSMutableArray new];
            for (int j = 0 ; j < 7; j++) {
                NSMutableSet *spot = [NSMutableSet new];
                [weekdayArray addObject:spot];
            }
            [tempArray addObject:[weekdayArray copy]];
        }
        _timeSpotArray = [tempArray copy];
    }

换句话说,MyModel(Singleton)包含timeSpotArray。 timeSpotArray包含7个weekdayArray。每个weekdayArray包含7个NSMutableSet。当我尝试从其他Controller中将某些内容放入这些NSMutableSets时:

while ([s next]) {
            NSUInteger weekday = [s intForColumn:@"weekday"];
            NSArray *weekdayArray = [[[MyModel getSingleton] timeSpotArray] objectAtIndex:weekday];
            NSUInteger spotNumber = [s intForColumn:@"bigclass"];
            NSMutableSet *spotArray = [weekdayArray objectAtIndex:spotNumber];

            //MARK II
            DataModel *newModel = [DataModel new];
            //Configure newData ...
            [spotArray addObject:[newModel copy]];

            //MARK I
        }

在MARK I,我发现newData已成功添加到其中一个NSMutableSet。但是当我在下一个循环中查看MARK II时,NSMutableSet中没有任何内容!

是什么原因以及如何解决问题?我在ARC的情况下遇到了这个。

0 个答案:

没有答案