Ваше управление памятью нарушено.Когда вы делаете что-то вроде этого:
Checkin *tempcheck = [[Checkin alloc] init];
tempcheck = [checkinArray objectAtIndex:i];
Что вы делаете, это создаете объект, а затем назначаете указатель на объект в массиве регистрации.Это приводит к утечке памяти прямо здесь.
Затем, позже, когда вы делаете:
[tempcheck release];
вы фактически вызываете release для объекта в массиве, а не для того, который вы выделяете 'буду раньше.Предположительно, это приводит к тому, что объект в массиве собирается мусором, а затем, когда вы пытаетесь получить к нему доступ во второй раз, вы получаете сбой.
Удаляет allocs & release и просто делает что-то вроде этого:
Checkin *tempcheck = [checkinArray objectAtIndex:i];