Я уверен, что это связано с памятью, но я не могу понять, какая переменная вызывает у меня проблемы.
Я высвобождаю все, что выделяю, насколько я могу судить. Кажется, что этот цикл работает нормально, если он выполняется 365 раз, но не 730 (это делает дни в году).
Вот фрагмент кода, который завершается ошибкой ... он никогда не выходит из цикла, когда программа заканчивается на устройстве.
Любая помощь очень ценится. Спасибо!
NSMutableArray * dtArray = [[NSMutableArray alloc] init];
double frequencyInterval = [Frequency doubleValue];
int i;
NSString *newDateString = @"";
NSString *sqlString = [NSString stringWithFormat:@"insert into ToDoList (TaskId, DueDate, Completed, Notes, Status, CompletedDate, Frequency) values ('%i', \"%@\", '0',\"%@\",'' ,'0', %@);", (int)self.AddTaskId, origDueDateString, NotesField, todoFrequency];
NSDate *nDate = dueDate;
NSDateFormatter *f3 = [[NSDateFormatter alloc] init];
[f3 setDateFormat:@"yyyy-MM-dd"];
for(i=0; i< 1000; i++) {
newDate = [newDate addTimeInterval:(frequencyInterval*86400)];
newDateString = [f3 stringFromDate:newDate];
if ([endRecurDate compare:newDate] == NSOrderedDescending)
{
[dtArray addObject:newDate];
if (i == 0)
{
sql = [sqlString stringByAppendingString:[NSString stringWithFormat:@"insert into ToDoList (TaskId, DueDate, Completed, Notes, Status, CompletedDate, Frequency) values ('%i', \"%@\", '0',\"%@\",'' ,'0', %@)", (int)self.AddTaskId, newDateString, NotesField, todoFrequency]];
}
else
{
sql = [sql stringByAppendingString:[NSString stringWithFormat:@";insert into ToDoList (TaskId, DueDate, Completed, Notes, Status, CompletedDate, Frequency) values ('%i', \"%@\", '0',\"%@\",'' ,'0', %@)", (int)self.AddTaskId, newDateString, NotesField, todoFrequency]];
}
//stringByAppendingString
}
else
{
break;
}
}
[dtArray release];
[f3 release];