Я пытаюсь сделать это с помощью составного предиката с помощью Cloudkit, но ошибка Xcode говорит «Неожиданное выражение». Кто-нибудь знает, что не так с моим кодом? Цените любую помощь!NSCompoundPredicate и Cloudkit
let userRef = CKReference(recordID: userID, action: .None)
let predicateOne = NSPredicate(format: "recordID IN %@ AND user = %@", postIDs, userRef)
// I need all user post's that match the IDs in the array and where the user ID matches the Id in the reference field for the user.
let predicateTwo = NSPredicate(format: "recordID IN %@", followIDs)
// Or I want recordID's that match the IDs in this array.
// I want records if either predicate condition is met, or both, which is why I'm using an OrPredicateType.
let predicate = NSCompoundPredicate(type: NSCompoundPredicateType.OrPredicateType, subpredicates: [predicateOne!, predicateTwo!])
let query = CKQuery(recordType: "UserPosts", predicate: predicate)
let queryOp = CKQueryOperation(query: query)
Не понимаю, почему эти предикаты потерпят неудачу. Можете ли вы указать точную ошибку, которую вы получаете? – farktronix
Являются ли PostIDs и followIDs массивами CKReferences для CKRecordID? – Marcus
@Marcus. Эти массивы являются идентификаторами recordID, и я запрашиваю индексы метаданных для этих идентификаторов записи. Переменная userRef является CKReference. –