2014-07-25 8 views
6

मुझे CKQuery बनाने की आवश्यकता है जहां भविष्यवाणी में एक रिकॉर्ड के संदर्भ है, और रिकॉर्ड का क्षेत्र नहीं है।सीकेक्वियर जहां भविष्यवाणी का संदर्भ है और फ़ील्ड नहीं है?

इस

let query = CKQuery(recordType: "OUP", predicate: NSPredicate(format: "o = %@", "FF4FB4A9-271A-4AF4-B02C-722ABF25BF44") 

मैं o किस तरह निर्धारित की तरह एक CKReference है, मैदान में नहीं!

फील्ड मान प्रकार क्वेरी विधेय में क्षेत्र के लिए 'o'

उत्तर

10

मैं CKQuery class reference में पाया जवाब है, या CKQuery में CKReference उपयोग करने के लिए कैसे कम से कम एक उदाहरण बेमेल:

मैं इस त्रुटि मिलती है:

CKReference* recordToMatch = [[CKReference alloc] initWithRecordID:employeeID action:CKReferenceActionNone]; 
NSPredicate* predicate = [NSPredicate predicateWithFormat:@"employee == %@", recordToMatch]; 

रिकॉर्ड है कि एक अलग रिकॉर्ड जिसकी आईडी आप को पता है लिंक से मेल करने के लिए, एक विधेय है कि एक क्षेत्र के लिए एक संदर्भ obj युक्त मेल खाता बनाने के जैसा कि लिस्टिंग 1 में दिखाया गया है। उदाहरण में, रिकॉर्ड के कर्मचारी क्षेत्र में एक सीके रेफरेंस ऑब्जेक्ट होता है जो दूसरे रिकॉर्ड को इंगित करता है। जब क्वेरी निष्पादित होती है, तो एक मैच तब होता है जब स्थानीय रूप से बनाई गई CKReference ऑब्जेक्ट में आईडी रिकॉर्ड के निर्दिष्ट फ़ील्ड में एक ही आईडी होती है।

10

आप रिश्तों को मैच के लिए के साथ या एक CKReference के बिना एक CKRecord या CKRecordID, उपयोग कर सकते हैं,।

CKRecord:

let predicate = NSPredicate(format: "artist == %@", artist) 

CKRecordID: CKRecord साथ

let predicate = NSPredicate(format: "artist == %@", artistID) 

CKReference: CKRecordID साथ

let recordToMatch = CKReference(record: artist, action: CKReferenceAction.None) 
let predicate = NSPredicate(format: "artist == %@", recordToMatch) 

CKReference:

let recordToMatch = CKReference(recordID: artistID, action: CKReferenceAction.None) 
let predicate = NSPredicate(format: "artist == %@", recordToMatch) 
संबंधित मुद्दे

 संबंधित मुद्दे