2015-11-05 8 views
7

मैं संपर्क फ्रेमवर्क के साथ समूह बनाने और सहेजने का प्रयास करता हूं। सबसे पहले उपयोगकर्ता संपर्क एक्सेस के लिए ऐप को अधिकृत करता है। एक व्यू कंट्रोलर प्रस्तुत किया गया है और + बटन उपयोगकर्ता टेक्स्टफील्ड के साथ एक अलर्टव्यू दिखाता है।संपर्क ढांचे के साथ नया समूह बनाएं, CNErrorDomain Code = 2

उपयोगकर्ता उस समूह के नाम को टाइप करता है जिसे वह चाहता है और अलर्टव्यू (सेव) के बटन पर क्लिक करें।

यह नया समूह सहेजने के लिए कोड है। समूह का नाम उपलब्ध है, लेकिन यह वैसे भी इस समूह को बचाने के लिए संभव नहीं है:

CNContactStore *contactStore = [CNContactStore new]; 

[contactStore requestAccessForEntityType:CNEntityTypeContacts completionHandler:^(BOOL granted, NSError *error){ 
if (granted) { 

    CNMutableGroup *newGroup = [CNMutableGroup new]; 
    CNSaveRequest *saveRequest = [CNSaveRequest new]; 

    [newGroup setName:groupName]; 

    //when saving to container with identifier nil, we get this error: 
    //Error Domain=CNErrorDomain Code=2 "(null)" UserInfo={CNInvalidRecords=(
    //"<CNMutableGroup: 0x10a059f20: identifier=2F4981B9-8A47-45A4-8841-1FA5A09584A4:ABGroup, name=gghh>" 
    [saveRequest addGroup:newGroup toContainerWithIdentifier:nil]; 
    [contactStore executeSaveRequest:saveRequest error:&error]; 

    if (error){ 
     //error saving group 
     //NSLog(@"error message: %@",error); 
    } else { 
     //if no errors, reload tableview 
     dispatch_async(dispatch_get_main_queue(), ^{ 
      [self.tableView reloadData]; 
     }); 
    } 
} 
}]; 



Error Domain=CNErrorDomain Code=2 "(null)" UserInfo={CNInvalidRecords=(
    "<CNMutableGroup: 0x14fb3e5e0: identifier=8E490585-1223-407E-B353-0D25609B05AB:ABGroup, name=jddjd>" 
)} 

अगले अजीब बात है: क्यों बचाने अनुरोध अंत में पहचानकर्ता :ABGroup के साथ इस समूह
को बचाने की कोशिश कर रहा है?

त्रुटि में CNInvalidRecords के बारे में जानकारी शामिल है।
मैं केवल संपर्क फ्रेमवर्क का उपयोग कर रहा हूं।
ऐसा क्यों हो रहा है?

इसके लिए कोई समाधान?

उत्तर

2

यह अनिवार्य रूप से एक ही कोड के साथ मेरे लिए ठीक काम करता है।

CNMutableGroup *newGroup = [CNMutableGroup new]; 
CNSaveRequest *saveRequest = [CNSaveRequest new]; 
[newGroup setName:self.groupName]; 
[saveRequest addGroup:newGroup toContainerWithIdentifier:nil]; 
[contactStore executeSaveRequest:saveRequest error:&error]; 

और एक नए समूह

+1

इस करता है, तो एक नया समूह है, बशर्ते iCloud सेटिंग> मेल, कैलेंडर, संपर्क में डिफ़ॉल्ट के रूप में सेट किया गया है बनाता है बनाया। यदि डिफ़ॉल्ट एक एक्सचेंज है, तो समूह बनाना और सहेजना संभव नहीं होगा। और यही कारण है कि मुझे यह त्रुटि क्यों मिलती है। मैं इस समस्या के लिए एक समाधान की तलाश में हूं। – brush51

+0

ऐप्पल के दस्तावेज़ों के अनुसार आप एक एक्सचेंज कंटेनर में एक समूह नहीं बना सकते हैं, आपको प्रत्येक "समूह" के लिए एक अलग कंटेनर बनाने की आवश्यकता है। –

+0

हाँ यह सही है, लेकिन मुझे लगता है कि एक नया समूह बनाने और इसे स्थानीय रूप से सहेजने के लिए एक और अलग कंटेनर बनाना संभव नहीं होगा जब iCloud सिंक सक्रिय हो। – brush51

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