2016-11-09 2 views
2

Я создал базу данных с Core Data на iOS. Первоначально я установил уникальное ограничение в моем объекте Conversation. Однако после удаления я получил ошибку: «В атрибуте ограничений уникальности для сущности Разговор, запятая не является допустимым свойством»."В атрибуте ограничений уникальности для объекта, запятая недействительна свойство" в Coredata Xcode 8

Я смотрел каждое поле в своем DataModel.xcdatamodeld, но не смог найти решение.

enter image description here

ответ

0

Его выглядит как ошибка в Xcode 8. Я удалил все атрибуты из сущности, убирали проект, а затем снова добавляют атрибуты. После этого ошибка исчезла. Может быть, это поможет кому-то.

1

У меня была такая же проблема с Xcode 8.1. Я не хотел удалять все многие атрибуты, болезненно настроенные для всех 6 моих сущностей, и нашел другое решение. Предположим, что ваш файл модели называется «foobar.xcdatamodeld».

  1. Редактирование XML непосредственно в модели. Для этого вам нужно перейти к файлу «содержимое» внутри файла модели. Путь к нему: foobar.xcdatamodeld/foobar.xcdatamodel/contents. Чтобы добраться до него в Finder, щелкните правой кнопкой мыши по пакету «xcdatamodeld», чтобы «Показать содержимое пакета», затем снова в пакете «xcdatamodel». Затем вы можете перетащить файл «Содержание» в свой текстовый редактор. Вы увидите, появляются ограничения следующим образом в XML:

    <uniquenessConstraints> 
        <uniquenessConstraint> 
         <constraint value="property_name"/> 
        </uniquenessConstraint> 
    </uniquenessConstraints> 
    

Вы можете редактировать «свойство PROPERTY_NAME», чтобы соответствовать новому значению, или удалить ограничения вообще.

  1. После редактирования попытайтесь очистить и перекомпилировать. В моем случае ошибка все еще была там, поэтому мне пришлось сделать небольшой «переименование танца» с Xcode. Я удалил модель из проекта Xcode, а затем переименовал файл модели в другое имя (включая файл «xcdatamodel» внутри файла «xcdatamodeld») и добавил его обратно в Xcode. Я снова повторил это со старым именем, чтобы вернуться к первоначальному имени.
+0

У меня была аналогичная проблема, следовавшая выше. Я закрыл Xcode 8.2.1 и открыл файл содержимого только для того, чтобы не найти уникальности. После повторного открытия Xcode проблема исчезла. –

0

Я проверил XML-файл и отметил, что «запятые, отделенные, свойства» были в XML. Для очистки проекта я использовал Product-> Clean (команда + shift + K). Очистка сама по себе не помогла. Затем я попробовал File-> Save (команда + S).

Файл-> сохранить обновленный XML и прояснить ситуацию для меня.