iCloud - NCoding หรือข้อมูลหลัก

ฉันมีแอปที่ทำงานกับ NSCoding, 3 คลาส ซึ่งไม่เกี่ยวข้องกัน - ดังนั้นจึงใช้วิธี NSCoding แบบง่าย ๆ เพื่อบันทึกอาร์เรย์ของอ็อบเจ็กต์ของฉัน

อย่างไรก็ตาม ตอนนี้คำถามของ iCloud จากสิ่งที่ฉันเข้าใจ Core Data ตอนนี้ใช้งานได้กับ iCloud โดยพื้นฐานแล้วนอกกรอบ มาก ใช้งานง่าย

เพื่อช่วยให้คุณคงวัตถุที่ได้รับการจัดการไว้บนคลาวด์ iCloud จึงได้รวมเข้ากับข้อมูลหลัก หากต้องการใช้ Core Data กับ iCloud คุณเพียงบอกให้ Core Data สร้างพื้นที่จัดเก็บถาวรที่เปิดใช้งาน iCloud บริการ iCloud และ Core Data จะดูแลส่วนที่เหลือ

ดังนั้น คำถามคือ ฉันควรแปลงแอปของฉันให้ใช้ Core Data ซึ่งให้ iCloud เป็นค่าเริ่มต้นแก่ฉัน - หรือมันง่ายพอๆ ที่จะตั้งค่า iCloud เป็นการตั้งค่าปัจจุบันของฉันด้วย NSCoding

การพัฒนาใน Swift สำหรับ iOS 9

ขอบคุณ


person DogCoffee    schedule 14.10.2015    source แหล่งที่มา
comment
จากสิ่งที่ฉันเข้าใจตอนนี้ Core Data ใช้งานได้กับ iCloud โดยพื้นฐานแล้ว - ไม่อย่างแน่นอน. ค่อนข้างซับซ้อนเมื่อพิจารณาถึงการอัปเกรดบัญชี ผู้ใช้ที่เปิดหรือปิด iCloud ข้อกำหนดด้านความสมบูรณ์ของข้อมูล การสำรองข้อมูล การกู้คืน ฯลฯ...   -  person Duncan Groenewald    schedule 14.10.2015
comment
คงมีวิธีที่ดีกว่านี้.... ฉันลอง Parse และร้านค้าในพื้นที่แล้ว แต่นั่นก็กลายเป็นฝันร้ายเช่นกัน บางที cloudKit ....   -  person DogCoffee    schedule 14.10.2015
comment
คุณไม่จำเป็นต้องใช้ Core Data เพื่อใช้ iCloud คุณสามารถบันทึกไฟล์ใน iCloud ได้โดยไม่ต้องใช้ Core Data   -  person Tom Harrington    schedule 14.10.2015
comment
@TomHarrington ฉันเข้าใจ ฉันแค่สงสัยว่ามันทำให้สิ่งต่าง ๆ ง่ายขึ้นแบบนั้นหรือไม่   -  person DogCoffee    schedule 15.10.2015
comment
ไม่ นั่นจะทำให้เรื่องยากขึ้น เว้นแต่ว่าคุณต้องการข้อมูลหลักสำหรับสิ่งอื่นที่ไม่ใช่ iCloud อย่าเพิ่มข้อมูลเพียงเพื่อรับการสนับสนุน iCloud   -  person Tom Harrington    schedule 15.10.2015
comment
ไชโยทอม ลองดู UIDocument เลย   -  person DogCoffee    schedule 15.10.2015


คำตอบ (1)


การสนับสนุน iCloud อาจ ทำงานได้ดีกับ CoreData ในขณะนี้ อย่างไรก็ตาม มันใช้งานไม่ได้นานมากจนฉัน (และคนอื่นๆ) หยุดใช้มันโดยสิ้นเชิง ฉันเสียเวลาไปมากในการพยายามทำให้มันใช้งานได้ จนฉันปฏิเสธที่จะใช้เวลาอีกหนึ่งวินาทีในการพยายามใช้มันอีกครั้ง

หลังจากเขียนโซลูชันการซิงค์ CoreData ที่เป็นกรรมสิทธิ์ของฉันเอง ในที่สุดฉันก็ลองใช้ Ensembles และฉันก็ไม่เคยมองย้อนกลับไปอีกเลย

อย่างไรก็ตาม หากแอปพลิเคชันของคุณไม่จำเป็นต้องใช้ CoreData ในปัจจุบัน ทำไมไม่ลองใช้การสนับสนุน iCloud มาตรฐานดูล่ะ ดูเหมือนว่าจะทำงานได้ดีสำหรับการซิงค์ไฟล์ตามปกติ ซึ่งเป็นสิ่งที่คุณน่าจะทำได้หากคุณเพียงบันทึกออบเจ็กต์ลงในไฟล์

ไม่จำเป็นต้องเพิ่มความซับซ้อนของ CoreData หากแอปของคุณทำงานได้ดีหากไม่มีมัน

person Jody Hagins    schedule 14.10.2015
comment
ฉันมีปัญหาเดียวกัน - ฉันเลิกใช้ iCloud เมื่อ 2 ปีที่แล้ว - โดยคิดว่ามันจะได้ผล ฉันคิดว่ามันจะต้องใช้เครือข่ายมากเกินไปด้วยวิธีนี้ โดยจะบันทึกกราฟวัตถุทั้งหมดของฉันทุกครั้งที่มีบางอย่างเปลี่ยนแปลงในวัตถุเพียงชิ้นเดียว - person DogCoffee; 15.10.2015
comment
หากคุณต้องการซิงค์กับ Core Data ฉันเชื่อมั่นใน Ensembles ฉันไม่มีความสัมพันธ์ใดๆ กับพวกเขา ยกเว้นในฐานะลูกค้าที่ชำระเงินสำหรับเวอร์ชัน 2 เวอร์ชัน 1 ยังคงใช้งานได้ฟรีในรูปแบบโอเพ่นซอร์ส และทำงานได้ดี - person Jody Hagins; 15.10.2015
comment
จะลองดูนะโจดี้ ขอบคุณ - person DogCoffee; 15.10.2015
comment
ฉันได้รับการซิงค์จำนวนมากโดยใช้ UIDocument และ ICloud จากนั้นปัญหาก็เริ่มต้นขึ้น เช่น สภาพการแข่งขัน ฉันได้ดู Ensembles และดูวิดีโอแนะนำ ถ้าฉันจะใช้มัน id เวอร์ชัน 2 ของคุณและชำระเงิน น่าแปลกที่ไม่มีวิดีโอหรือบทแนะนำออนไลน์เกี่ยวกับบริการนี้ มันเล่นกับ Swift ได้อย่างไร ?? - person DogCoffee; 16.10.2015
comment
ฉันยังไม่มีเหตุผลที่จะย้ายไป Swift ดังนั้นฉันจึงไม่รู้ ฉันอาจจะเป็นวัวแปลก ๆ แต่ฉัน จริงๆ ชอบ ObjectiveC อย่างไรก็ตาม ฉันคิดว่ามันเล่นได้เหมือนกับ ObjectiveC API อื่นๆ ที่ทำกับ Swift และไม่น่าจะมีปัญหาใดๆ อย่าลังเลที่จะถามนักพัฒนา เขาตอบกลับปัญหาหรือคำถามต่างๆ ได้อย่างดีเยี่ยม แม้กระทั่งก่อนที่ฉันจะให้เงินเขาด้วยซ้ำ - person Jody Hagins; 16.10.2015
comment
ฉันดาวน์โหลดหนังสือเล่มนี้แล้วและมีข้อความว่า Swift จะเล่นได้ดี ฉันก็เหมือนกัน... แต่เมื่อฉันเข้าสู่ Swift การดูรหัส Obj C ทำให้สมองของฉันเจ็บ ฉันไม่สงสัยเลยว่าคุณจะรู้สึกเหมือนกัน ขอบคุณอีกครั้ง. - person DogCoffee; 16.10.2015
comment
ต้องการความช่วยเหลือ Jody stackoverflow.com/questions/33204120/< /ก> - person DogCoffee; 19.10.2015