Основные сопоставления отношений данных: двойные кавычки в выражении значения автоматически превращаются в одинарные кавычки.

После создания модели сопоставления для основного переноса данных все выражения значений для сопоставления отношений генерируются правильно, за исключением 1 выражения значения, где аргументы заключены в одинарные кавычки (') вместо двойных кавычек ("). Это приводит к ошибке синтаксического анализа.

Вот чего я ожидал:

FUNCTION($manager ,"destinationInstancesForEntityMappingNamed:sourceInstances:" , "MatchToMatch" , $source.matches)

Но вот как генерируется функциональное выражение:

FUNCTION($manager ,'destinationInstancesForEntityMappingNamed:sourceInstances:' , 'MatchToMatch' , $source.matches)

Конкретное выражение значения всегда создается с одинарными кавычками

Когда я изменяю параметр «Source Fetch» ​​на правой боковой панели на «Use Custom(...)» и ввожу выражение вручную, все двойные кавычки снова превращаются в одинарные кавычки.

Когда я изменяю выражение значения непосредственно в таблице Mapping Editor, я получаю следующее сообщение об ошибке:

Невозможно проанализировать строку формата "FUNCTION($manager >,"destinationInstancesForEntityMappingNamed:sourceInstances:", >"MatchToMatch", $source.matches) == 1"

Когда я создаю и запускаю миграцию, я получаю следующее сообщение об ошибке:

2016-01-27 10:30:33.875 mapc[1431:352140] *** Завершение работы приложения из-за > неперехваченного исключения "NSInvalidArgumentException", причина: "Невозможно проанализировать > строку формата "FUNCTION($manager >, 'destinationInstancesForEntityMappingNamed:sourceInstances:' , >'MatchToMatch' , $source.matches) == 1"'

Может кто-нибудь объяснить, что происходит и как я могу обойти эту проблему?


person Johannes Eichler    schedule 27.01.2016    source источник


Ответы (2)


Проблема здесь в том, что совпадения — это зарезервированное ключевое слово.

Зарезервированные ключевые слова: https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/Predicates/Articles/pSyntax.html

Ознакомьтесь с примечанием, описанным здесь: https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/CoreDataVersioning/Articles/vmMappingOverview.html

person Zillan    schedule 19.04.2016
comment
Это был мой случай, спасибо! также обратите внимание, что ключевые слова нечувствительны к регистру. - person AMTourky; 18.02.2018

  1. Вам нужно удалить разорванные отношения
  2. Добавьте новый с пустым «Выражением значения» Посмотрите здесь
person Igor Shulumba    schedule 16.08.2017
comment
Хотя теоретически это может ответить на вопрос, было бы предпочтительнее включить сюда основные части ответа и предоставить ссылку для справки . - person GhostCat; 16.08.2017