В моем проекте с типом записи CloudKit «Пользователь» (я также тестировал другие имена типов записей) Я создаю запись с полем электронной почты.Cloudkit возвращает записи с определенной строкой
Я пытаюсь точно подобрать это письмо и получить записи, которые соответствуют. Я делаю это с предикатом IN или == (для одного или списка писем).
let query = CKQuery(recordType: "User", predicate: NSPredicate(format: "email IN %@", emails))
let query = CKQuery(recordType: "User", predicate: NSPredicate(format: "email == %@", "[email protected]"))
электронной почты У меня возникли проблемы с является «[email protected]», любая попытка получить запись с этой электронной почты возвращает 0, однако, если я изменить его на «[email protected]» его будет извлекать OK.
Первоначально я предполагал, что это специальные символы, но другие строки с ними работают нормально. Тогда я предполагаю длину, но другие более длинные строки работают нормально.
Есть ли у кого-нибудь еще эта проблема? Мне трудно доверять CloudKit, не понимая, почему он не может соответствовать этой строке.
Я задал аналогичный вопрос, но перед тем, как у меня появилась информация, пользователь смог проверить это и получить те же результаты с этой строкой. Этот пост намного более краткий и имеет шаги для воссоздания.
Вы говорите, что если вы не измените предикат для ' "электронной почты ==% @", "[email protected]"' '(не T'), то вы получите вернуть ожидаемый результат? Если это так, то вы действительно уверены, что значение в базе данных на самом деле не 'julio_ukohgsp_chevez @ tfbnw.ne'? – rmaddy
Да, я на 100% уверен. Это странно. Я проверил много раз и набрал его вручную. Я могу попробовать вашу конкретную строку, но даже замена любого 1 символа сработала. – JDM
У меня точно такая же проблема. Вы нашли что-нибудь об этом? –