2014-09-29 12 views
7

काम नहीं करता है मैं इस कोड के साथ CloudKit की सदस्यता का प्रयास करें:CloudKit सदस्यता कभी कभी

NSPredicate *truePredicate = [NSPredicate predicateWithValue:YES]; 
    CKSubscription *itemSubscription = [[CKSubscription alloc] initWithRecordType:RecordType 
                     predicate:truePredicate 
                      options:CKSubscriptionOptionsFiresOnRecordCreation | CKSubscriptionOptionsFiresOnRecordUpdate | CKSubscriptionOptionsFiresOnRecordDeletion]; 


    CKNotificationInfo *notification = [[CKNotificationInfo alloc] init]; 
    notification.alertBody = @"Item Added/Updated/Deleted!"; 
    itemSubscription.notificationInfo = notification; 

    [self.publicDatabase saveSubscription:itemSubscription completionHandler:^(CKSubscription *subscription, NSError *error) { 
     if (error) { 
      // In your app, handle this error appropriately. 
      NSLog(@"An error occured in %@: %@", NSStringFromSelector(_cmd), error); 
     } else { 

      NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 
      [defaults setObject:subscription.subscriptionID forKey:kSubscriptionID]; 
      [defaults synchronize]; 
     } 
    }]; 

मैं कभी कभी यह त्रुटि प्राप्त:

CKError 0x17558460: "सर्वर अस्वीकृत अनुरोध" (15/2000); सर्वर संदेश = "आंतरिक सर्वर त्रुटि"; uuid = B89DE7A4-9D22-42BC-9CD4-4330F3FE04EF; कंटेनर आईडी = "iCloud.com.app.testApp"

या

CKError 0x14fb3510: "सेवा अनुपलब्ध" (6/2022); सर्वर संदेश = "स्कीमा स्थापित करने में विफल रहा, सीएएस विफल"; uuid = F562D1AD-B40E-4842-A5EA-2A5F800C18F2; कंटेनर आईडी = "iCloud.com.app.testApp"

कोई भी इसे ठीक करने के बारे में जानता है? क्या मैं अपने कोड के साथ कुछ कर सकता हूँ? क्या यह ऐप्पल समस्या है और मैं कुछ भी नहीं कर सकता? धन्यवाद।

+0

मुझे पहले त्रुटि मिली है, जहां यह कुछ घंटों के लिए अचानक दिखाई देता है, और उसके बाद चले गए। ऐप्पल के सर्वर के साथ यह समस्या थी। लेकिन अगर समस्या दूर नहीं जाती है, तो शायद यह तुम्हारा है। दूसरी त्रुटि के लिए – honcheng

+0

, क्या आपने इसे सदस्यता लेने से पहले रिकॉर्ड प्रकार बनाया है? – honcheng

+0

हाँ, मेरे पास रिकॉर्ड प्रकार है। –

उत्तर

1

मुझे एक ही समस्या थी। मैं कंटेनरों को पूरी तरह बदल रहा हूं (गोटो परियोजना लक्ष्य -> ​​क्षमताओं -> कस्टम कंटेनर निर्दिष्ट करें -> एक नया कंटेनर आईडी दर्ज करें)। यह पूरी तरह से काम किया।

+0

क्या आपको लगता है कि पूरी चीज डिफॉल्ट कंटेनर में है? –

+8

मुझे यकीन नहीं है कि आप क्या पूछ रहे हैं। – ninjaneer

3

मुझे हाल ही में एक ही त्रुटि मिली है, और परियोजना की क्षमताओं में क्लाउडकिट को टॉगल करके इसे हल करने में सक्षम था। एक बार जब मैं क्लाउडकिट अनुमति को रीसेट कर देता हूं, तो सब ठीक काम करने लगते थे।

+0

मुझे एक ही समस्या थी और एक नए कंटेनर ने इसे ठीक नहीं किया, यह सुझाव इसे ठीक करने के लिए दिखाई दिया। हालांकि, समस्या कुछ बार वापस आ गई है। मैं एक स्वच्छ एक्सकोड परियोजना बनाने की कोशिश कर सकता हूं। – coping

+0

यह सर्वर के साथ मेल नहीं खा रहे स्कीमा के बारे में कुछ समान CKInternalErrorDomain शिकायत भी हल करता है। – Thunk

1

मुझे सही त्रुटि थी: "सर्वर अस्वीकृत अनुरोध" (15/2000); सर्वर संदेश = CKModify सदस्यता शिष्टाचार के परिणामस्वरूप "आंतरिक सर्वर त्रुटि"।

अजीब बात यह है कि आईपैड के साथ सदस्यता का परीक्षण ठीक था। लेकिन, आईफोन से सदस्यता काम नहीं किया।

1- पुराने स्वरूप (काम नहीं कर रहा)

1-1:

NSPredicate स्वरूप बदलकर फिक्स्ड

देना विधेय = NSPredicate (प्रारूप: "दर> = 0")

1-2:

x = 0 को चलो! NSNumber

देना विधेय = NSPredicate (प्रारूप: "दर> =", एक्स)

2- नई विधेय प्रारूप (समस्या का समाधान हो):

देना विधेय = NSPredicate (प्रारूप: "दर> = ", एनएसएनंबर (पूर्णांक: 0))

+0

सवाल उद्देश्य-सी के लिए पूछ रहा था। क्या आप अपना जवाब संशोधित कर सकते हैं? – Jerry

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