Я новичок в разработке iOS и исходя из Java-мира. Я полностью потерял себя от того, как мне следует запрашивать модель CoreData.Как построить сложный запрос с помощью CoreData?
Я пытаюсь показать список сообщений, сгруппированных по их именам, а затем упорядочен по последнему сообщению и прочитано ли сообщение. Например, на Android я буду запускать следующий sql-запрос.
SELECT *, wm1.date_timestamp AS TimeSpent " +
"FROM messages wm1 " +
"JOIN (" +
"SELECT *, MAX(date_timestamp) as dt " +
"FROM messages " +
"WHERE to_user = ?" +
" GROUP BY from_user " +
") wm2 ON wm1.from_user = wm2.from_user AND wm1.date_timestamp = wm2.dt " +
"ORDER BY wm1.is_read ASC, wm1.date_timestamp DESC
Может кто-нибудь указать мне в правильном направлении, как это сделать на iOS.
Простым фактом является то, что вы не можете воспроизводить сложные запросы, подобные тем, у которых есть чистые данные ядра, и если вам это нужно, это может быть не инструмент для вас. NSPredicate и NSSortDescriptor будут обрабатывать только некоторые его части. –
Да, это имеет смысл, так есть ли чистый способ сделать это на iOS? Я имею в виду, что сбор итогового списка выше занимает много кода без запроса. – Lunar
Загляните в FMDB, если вы готовы работать напрямую с базой данных SQLite вместо Core Data. Это позволит вам работать так, как вы привыкли, напрямую выполняя SQL-запросы. https://github.com/ccgus/fmdb –