【发布时间】:2020-01-09 10:30:29
【问题描述】:
我有一个循环遍历 NSArray 以提取数据,但我的数据正在自我复制。
我最初的 NSArray 'timeProfiles',包含 24 个 NSArray,每个 NSArray 包含 16 个对象。对于 timeProfiles 中的每个数组,我正在尝试将该数据添加到“时间刻度对象”。
我尝试将每个 timescaleInfo 对象添加到一个数组中,但仍然得到了耗尽的值。
我也尝试增加 timeProfiles 的第一个索引,例如 timeProfiles[z+1] 等,但到目前为止没有任何效果..
我们将不胜感激。
代码:
for (int z = 0; z < timeProfiles.count; z+= 12) {
for (int i = 0; i < 12; i++) {//Time slices (12)
tP = [timeProfiles objectAtIndex:z + i];
//0SFTWTMS
//00000SSH
//Setting time profiles
NSLog(@"timeprofile %@", tP);
timeScaleInfo0 = [[TimeScaleInfo alloc] initWithTimeScaleID:[timeProfiles[0][2] integerValue] timeSliceID:[[tP objectAtIndex:15] integerValue] timeScaleStartTime:timeProfiles[0][3] timeScaleEndTime:timeProfiles[0][4] weekdayFlag:weekDayFlag0 clendarFlag:@"00000000"];
timeScaleInfo1 = [[TimeScaleInfo alloc] initWithTimeScaleID:[timeProfiles[1][2] integerValue] timeSliceID:[[tP objectAtIndex:15] integerValue] timeScaleStartTime:timeProfiles[1][3] timeScaleEndTime:timeProfiles[1][4] weekdayFlag:weekDayFlag1 clendarFlag:@"00000000"];
timeScaleInfo2 = [[TimeScaleInfo alloc] initWithTimeScaleID:[timeProfiles[2][2] integerValue] timeSliceID:[[tP objectAtIndex:15] integerValue] timeScaleStartTime:timeProfiles[2][3] timeScaleEndTime:timeProfiles[2][4] weekdayFlag:weekDayFlag2 clendarFlag:@"00000000"];
timeScaleInfo3 = [[TimeScaleInfo alloc] initWithTimeScaleID:[timeProfiles[3][2] integerValue] timeSliceID:[[tP objectAtIndex:15]integerValue] timeScaleStartTime:timeProfiles[3][3] timeScaleEndTime:timeProfiles[3][4] weekdayFlag:weekDayFlag3 clendarFlag:@"00000000"];
timeScaleInfo4 = [[TimeScaleInfo alloc] initWithTimeScaleID:[timeProfiles[4][2] integerValue] timeSliceID:[[tP objectAtIndex:15] integerValue] timeScaleStartTime:timeProfiles[4][3] timeScaleEndTime:timeProfiles[4][4] weekdayFlag:weekDayFlag4 clendarFlag:@"00000000"];
timeScaleInfo5 = [[TimeScaleInfo alloc] initWithTimeScaleID:[timeProfiles[5][2] integerValue] timeSliceID:[[tP objectAtIndex:15]integerValue] timeScaleStartTime:timeProfiles[5][3] timeScaleEndTime:timeProfiles[5][4] weekdayFlag:weekDayFlag5 clendarFlag:@"00000000"];
timeScaleInfo6 = [[TimeScaleInfo alloc] initWithTimeScaleID:[timeProfiles[6][2] integerValue] timeSliceID:[[tP objectAtIndex:15] integerValue] timeScaleStartTime:timeProfiles[6][3] timeScaleEndTime:timeProfiles[6][4] weekdayFlag:weekDayFlag6 clendarFlag:@"00000000"];
timeScaleInfo7 = [[TimeScaleInfo alloc] initWithTimeScaleID:[timeProfiles[7][2] integerValue] timeSliceID:[[tP objectAtIndex:15] integerValue] timeScaleStartTime:timeProfiles[7][3] timeScaleEndTime:timeProfiles[7][4] weekdayFlag:weekDayFlag7 clendarFlag:@"00000000"];
timeScaleInfo8 = [[TimeScaleInfo alloc] initWithTimeScaleID:[timeProfiles[8][2] integerValue] timeSliceID:[[tP objectAtIndex:15]integerValue] timeScaleStartTime:timeProfiles[8][3] timeScaleEndTime:timeProfiles[8][4] weekdayFlag:weekDayFlag8 clendarFlag:@"00000000"];
timeScaleInfo9 = [[TimeScaleInfo alloc] initWithTimeScaleID:[timeProfiles[9][2] integerValue] timeSliceID:[[tP objectAtIndex:15] integerValue] timeScaleStartTime:timeProfiles[9][3] timeScaleEndTime:timeProfiles[9][4] weekdayFlag:weekDayFlag9 clendarFlag:@"00000000"];
timeScaleInfo10 = [[TimeScaleInfo alloc] initWithTimeScaleID:[timeProfiles[10][2] integerValue] timeSliceID:[[tP objectAtIndex:15] integerValue] timeScaleStartTime:timeProfiles[10][3] timeScaleEndTime:timeProfiles[10][4] weekdayFlag:weekDayFlag10 clendarFlag:@"00000000"];
timeScaleInfo11 = [[TimeScaleInfo alloc] initWithTimeScaleID:[timeProfiles[11][2] integerValue] timeSliceID:[[tP objectAtIndex:15] integerValue] timeScaleStartTime:timeProfiles[11][3] timeScaleEndTime:timeProfiles[11][4] weekdayFlag:weekDayFlag11 clendarFlag:@"00000000"];
}
TimeSliceInfo *timesliceInfo = [[TimeSliceInfo alloc] initWithTimeSliceID:[[tP objectAtIndex:15] integerValue] timeScaleInfoArray:@[timeScaleInfo0, timeScaleInfo1, timeScaleInfo2, timeScaleInfo3, timeScaleInfo4, timeScaleInfo5, timeScaleInfo6, timeScaleInfo7, timeScaleInfo8, timeScaleInfo9, timeScaleInfo10, timeScaleInfo11]];
[timeSliceArray addObject:timesliceInfo];
userKeyInfo.timeSliceInfoArray = timeSliceArray;
}
【问题讨论】:
-
您应该澄清“复制自身”的含义。这段代码实际上有很多问题。用更具体的答案阐明您的要求可能会让您更好地了解某人可能希望如何为您提供所需的推动力。
标签: objective-c for-loop nsarray