Добавленный атрибут iOS xcdatamodel имеет кавычку

Я только что перенес свою новую модель данных и добавил новый атрибут с именем "author_mail". Как бы я ни обнаружил при выводе моих записей:

attachments = "<relationship fault: 0xd2459c0 'attachments'>";
author = nil;
"author_mail" = nil; <-- ABNORMAL
category1 = World;

Я установил для author_mail строковый тип, но не думаю, что author_mail должен заключаться в кавычки. Я не знаю, связано ли это с моей миграцией, но не выдает никакой ошибки. Любая подсказка, с чего мне начать смотреть? Я ничего не нашел в интернете.

Результат хочу:

attachments = "<relationship fault: 0xd2459c0 'attachments'>";
author = nil;
author_mail = nil; 
category1 = World;

Спасибо всем.

1 ответ

Решение

Это не ненормально, и это не значит, что вы думаете, что это значит. Расслабься, все в порядке.

То, что вы видите, является результатом вызова description на NSManagedObject, По умолчанию это как NSManagedObject форматирует результат. Если имя ключа содержит не алфавитно-цифровые символы, оно ставит кавычки вокруг имени ключа. Вот как они решили это сделать. В следствии:

  • Это влияет только на результат вызова description на объекте, что происходит, если вы звоните NSLog распечатать объект.
  • Это не означает, что кавычки являются частью имени ключа. Если вы попытаетесь установить значение для author_name вы обнаружите, что вы не должны включать кавычки, потому что они не являются частью имени.

Это не влияет ни на что, кроме печати объектов с использованием description метод.

Вы можете и должны просто игнорировать это.

Если это действительно беспокоит вас по какой-то причине, создайте свой собственный подкласс NSManagedObject и переопределить description метод. Сделайте так, чтобы он печатался как угодно, с любым форматированием, которое вы хотите.

Другие вопросы по тегам