Измените свой код на:
for userCredential in userCredentials {
context.delete(userCredential)
}
saveLogin()
Проблема с вашим кодом заключается в том, что вы зацикливаете количество элементов, которое содержит переменная userCredentials. Это неизменяемое значение, которое не будет изменено и инициализируется до того, как оно зациклится хотя бы один раз.
Вы обращаетесь к индексу массива на основе индекса. Это не так, но не следует делать в тех случаях, когда достаточно простого запрета (см. Код выше).
После этого вы управляете количеством элементов, удаляя элемент. Это не влияет на количество неизменяемых элементов, о котором я говорил выше. Из-за этого рано или поздно вы получите исключение индекса за пределами границ. Вы должны попытаться найти, что это такое, попытаться получить доступ к элементу в списке, который не существует.