我的数据结构如下所示:
-(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的情况下遇到了这个。