Я соглашаюсь с сообщениями, в которых говорится, что об этом сообщают много путей и не является важной метрикой. Посмотрите этот ever-hear-of-developers-getting-paid-per-line-of-code.
Это означает, что ' Обязательному свойству sa присвоено значение nil. Либо в вашей * .xcodatamodel отметьте поле «optional», либо при сохранении в managedObjectContext убедитесь, что ваши свойства заполнены.
Если вы получаете дальнейшие ошибки после изменения кода в соответствии с двумя требованиями, попробуйте очистить свою сборку и удалите приложение со своего iPhone Simulator / устройства iPhone. Изменение вашей модели может конфликтовать с реализацией старой модели.
Изменить:
Я почти забыл, вот все коды ошибок, которые выдает Core Data: Если после изменения кода в соответствии с двумя требованиями возникают дополнительные ошибки, попробуйте очистить сборку и удалить приложение с iPhone Simulator / iPhone. Изменение вашей модели может конфликтовать с реализацией старой модели.
Изменить:
Я почти забыл, вот все коды ошибок, которые выдает Core Data: Если после изменения кода в соответствии с двумя требованиями возникают дополнительные ошибки, попробуйте очистить свою сборку и удалить приложение со своего iPhone Simulator / устройства iPhone. Изменение вашей модели может конфликтовать с реализацией старой модели.
Изменить:
Я почти забыл, вот все коды ошибок, которые выдает Core Data: Справочник по константам основных данных Раньше у меня были проблемы с этим, и я понял, что снял отметку с правильного необязательного поля. Такая проблема с обнаружением проблемы. Удачи.
Я сам некоторое время боролся с этим. Настоящая проблема здесь в том, что имеющаяся у вас отладка не показывает вам, в чем проблема. Причина в том, что CoreData помещает массив объектов NSError на «верхний уровень». Объект NSError, который он возвращает, если существует более одной проблемы (вот почему вы видите ошибку 1560, которая указывает на несколько проблем, и массив ошибок 1570s). Похоже, что у CoreData есть несколько ключей, которые он использует для хранения информации в возвращаемой ошибке, если есть проблема, которая предоставит вам более полезную информацию (например, объект, на котором произошла ошибка, связь / атрибут, который отсутствовал, и т. Д. ). Ключи, которые вы используете для проверки словаря userInfo, можно найти в справочной документации здесь .
Это блок кода, который я использую для получения разумного вывода из ошибки, возвращаемой во время сохранения:
NSError* error;
if(![[survey managedObjectContext] save:&error]) {
NSLog(@"Failed to save to data store: %@", [error localizedDescription]);
NSArray* detailedErrors = [[error userInfo] objectForKey:NSDetailedErrorsKey];
if(detailedErrors != nil && [detailedErrors count] > 0) {
for(NSError* detailedError in detailedErrors) {
NSLog(@" DetailedError: %@", [detailedError userInfo]);
}
}
else {
NSLog(@" %@", [error userInfo]);
}
}
Будет произведен вывод, который сообщит вам, какие поля отсутствуют, что значительно упрощает решение проблемы.
что указывает на множественные проблемы и массив ошибок 1570s). Похоже, что у CoreData есть несколько ключей, которые он использует для хранения информации в возвращаемой ошибке, если есть проблема, которая предоставит вам более полезную информацию (например, объект, на котором произошла ошибка, связь / атрибут, который отсутствовал, и т. Д. ). Ключи, которые вы используете для проверки словаря userInfo, можно найти в справочной документации здесь .Это блок кода, который я использую для получения разумного вывода из ошибки, возвращаемой во время сохранения:
NSError* error;
if(![[survey managedObjectContext] save:&error]) {
NSLog(@"Failed to save to data store: %@", [error localizedDescription]);
NSArray* detailedErrors = [[error userInfo] objectForKey:NSDetailedErrorsKey];
if(detailedErrors != nil && [detailedErrors count] > 0) {
for(NSError* detailedError in detailedErrors) {
NSLog(@" DetailedError: %@", [detailedError userInfo]);
}
}
else {
NSLog(@" %@", [error userInfo]);
}
}
Будет произведен вывод, который сообщит вам, какие поля отсутствуют, что значительно облегчит решение проблемы.
что указывает на множественные проблемы и массив ошибок 1570s). Похоже, что у CoreData есть несколько ключей, которые он использует для хранения информации в возвращаемой ошибке, если есть проблема, которая предоставит вам более полезную информацию (например, объект, на котором произошла ошибка, связь / атрибут, который отсутствовал, и т. Д. ). Ключи, которые вы используете для проверки словаря userInfo, можно найти в справочной документации здесь .Это блок кода, который я использую для получения разумного вывода из ошибки, возвращаемой во время сохранения:
NSError* error;
if(![[survey managedObjectContext] save:&error]) {
NSLog(@"Failed to save to data store: %@", [error localizedDescription]);
NSArray* detailedErrors = [[error userInfo] objectForKey:NSDetailedErrorsKey];
if(detailedErrors != nil && [detailedErrors count] > 0) {
for(NSError* detailedError in detailedErrors) {
NSLog(@" DetailedError: %@", [detailedError userInfo]);
}
}
else {
NSLog(@" %@", [error userInfo]);
}
}
Будет произведен вывод, который сообщит вам, какие поля отсутствуют, что значительно облегчит решение проблемы.
Похоже, что у CoreData есть несколько ключей, которые он использует для хранения информации в возвращаемой ошибке, если есть проблема, которая предоставит вам более полезную информацию (например, объект, на котором произошла ошибка, связь / атрибут, который отсутствовал, и т. Д. ). Ключи, которые вы используете для проверки словаря userInfo, можно найти в справочной документации здесь .Это блок кода, который я использую для получения разумного вывода из ошибки, возвращаемой во время сохранения:
NSError* error;
if(![[survey managedObjectContext] save:&error]) {
NSLog(@"Failed to save to data store: %@", [error localizedDescription]);
NSArray* detailedErrors = [[error userInfo] objectForKey:NSDetailedErrorsKey];
if(detailedErrors != nil && [detailedErrors count] > 0) {
for(NSError* detailedError in detailedErrors) {
NSLog(@" DetailedError: %@", [detailedError userInfo]);
}
}
else {
NSLog(@" %@", [error userInfo]);
}
}
Будет произведен вывод, который сообщит вам, какие поля отсутствуют, что значительно упрощает решение проблемы.
Похоже, что у CoreData есть несколько ключей, которые он использует для хранения информации в возвращаемой ошибке, если есть проблема, которая предоставит вам более полезную информацию (например, объект, на котором произошла ошибка, связь / атрибут, который отсутствовал, и т. Д. ). Ключи, которые вы используете для проверки словаря userInfo, можно найти в справочной документации здесь .Это блок кода, который я использую для получения разумного вывода из ошибки, возвращаемой во время сохранения:
NSError* error;
if(![[survey managedObjectContext] save:&error]) {
NSLog(@"Failed to save to data store: %@", [error localizedDescription]);
NSArray* detailedErrors = [[error userInfo] objectForKey:NSDetailedErrorsKey];
if(detailedErrors != nil && [detailedErrors count] > 0) {
for(NSError* detailedError in detailedErrors) {
NSLog(@" DetailedError: %@", [detailedError userInfo]);
}
}
else {
NSLog(@" %@", [error userInfo]);
}
}
Будет произведен вывод, который сообщит вам, какие поля отсутствуют, что значительно упрощает решение проблемы.