2016-06-19 22 views
18

के साथ NSManagedObject subclassing मैं तेजी से 3 और एक्सकोड 8 बीटा के साथ कोर डेटा का उपयोग करने की कोशिश शुरू कर दिया है। जब मैं कोर डाटा मॉडल से NSManagedObject उपवर्गों पैदा करते हैं और संपादक मेनू में बनाएं NSManagedObject उपवर्ग ... विकल्प करने की कोशिश, Xcode 8 बीटा उत्पन्न तीन फ़ाइलें निम्न सामग्री के साथ उनमें से एक है _COREDATA_DATAMODELNAME_ + CoreDataModel.swift:स्विफ्ट 3 और एक्सकोड 8 बीटा

import Foundation 
import CoreData 

___COREDATA_DATAMODEL_MANAGEDOBJECTCLASSES_IMPLEMENTATIONS___ 

इसके अतिरिक्त, इस फ़ाइल की सामग्री दो चेतावनियां दिखाती है:

Expressions are not allowed at the top level. 
Use of unresolved identifier '___COREDATA_DATAMODEL_MANAGEDOBJECTCLASSES_IMPLEMENTATIONS___' 

क्या किसी को भी एक ही समस्या का सामना करना पड़ा है? इस नई फाइल का अर्थ कौन सा है?

धन्यवाद

+0

मैं एक्सकोड 8 बीटा में एक कस्टम 'एनएसएमएनेज ऑब्जेक्ट 'उप-वर्ग नहीं बना सकता। मुझे एक ही समस्या है। –

+0

मैंने तय किया कि ओबीजेसी के लिए निम्नलिखित मुद्दे लगभग निम्न हैं: http://stackoverflow.com/a/40788081/2246798 – souvickcse

उत्तर

44

यह शायद नए स्वचालित उपवर्ग पीढ़ी है, जो डेटा मॉडल फ़ाइल की इकाई निरीक्षक में नियंत्रित किया जा सकता के साथ एक (बीटा) संघर्ष है।

documentation (What's New In Core Data)

Xcode स्वचालित उपवर्ग पीढ़ी

Xcode से अब NSManagedObject उपवर्गों मॉडलिंग उपकरण में के स्वत: उत्पन्न समर्थन करता है। इकाई निरीक्षक में:

  • मैनुअल/कोई नहीं डिफ़ॉल्ट, और पिछले व्यवहार है, इस मामले में आप को अपना स्वयं का उप-वर्ग लागू करना चाहिए या NSManagedObject का उपयोग करना चाहिए।
  • श्रेणी/एक्सटेंशन ClassName+CoreDataGeneratedProperties नाम की फ़ाइल में कक्षा विस्तार उत्पन्न करता है। आपको मुख्य वर्ग घोषित करने/कार्यान्वित करने की आवश्यकता है (यदि ओब्जे-सी में, हेडर के माध्यम से एक्सटेंशन को ClassName.h नामित कर सकता है)। -
  • कक्षा परिभाषा ClassName+CoreDataClass की तरह नामित उपवर्ग फ़ाइलों के साथ-साथ श्रेणी/एक्सटेंशन के लिए उत्पन्न फ़ाइलों उत्पन्न करता है।

जेनरेट की गई फाइलें डेरिवेटडेटा में रखी गई हैं और मॉडल सहेजे जाने के बाद पहले निर्माण पर पुनर्निर्मित की गई है। वे Xcode द्वारा अनुक्रमित भी हैं, इसलिए संदर्भ नामों पर कमांड-क्लिक और फास्ट-ओपनिंग फ़ाइल नामों द्वारा।

+0

धन्यवाद। एक्सकोड 8 की नई रिलीज के इंतजार के दौरान मैं इन तीन विकल्पों के साथ प्रयास करूंगा। – RFG

+5

नोट: यदि आप मुझे स्विफ्ट में जेनरेट करना चाहते हैं, तो आप फाइल इंस्पेक्टर में कोडेन की भाषा भी चुन सकते हैं। किसी कारण से मेरा स्विफ्ट प्रोजेक्ट बनाने के बावजूद उद्देश्य सी था ... फिर फिर यह जीएम परियोजना प्रवासन के लिए बीटा है। –

+0

इकाई इंस्पेक्टर क्या है? उत्तर दें: यह वह जगह है जहां आप अपनी इकाई, .xcdatamodel फ़ाइल संपादित करते हैं – Ronen

0

मुझे इस डेवलपर बीटा एक्सकोड 8 के साथ समान समस्याएं हैं। उनमें से कुछ ने डेटा मॉडल छोड़ने से पहले या NSManagedObject सबक्लास उत्पन्न करने से पहले कमांड + एस (परिवर्तनों को सहेजें) हल किया है। मुझे नहीं पता क्यों, लेकिन मेरे मामले में स्वचालित सहेजने कभी-कभी काम नहीं करता था और कुछ त्रुटियां होती हैं।

0

मैंने ऊपर उल्लिखित .swift फ़ाइल के साथ समस्या में भाग लिया है और पाया है कि ___ COREDATA ... लाइन को टिप्पणी करने के लिए मुझे अब त्रुटि मिली है। मुझे यकीन नहीं है कि इसे पूरा करने के लिए क्या माना जाता है।

मैं भी खोजने रहा है कि Xcode 8 ज और की बाढ़ के लिए अग्रणी, CoreData संस्थाओं से जुड़ जाते हैं और बार-बार उद्देश्य सेल्सियस के लिए CoreData मॉडल कोड पीढ़ी लक्ष्य रीसेट करने कि नए क्षेत्रों के बारे में भूल की प्रवृत्ति है।फ़ाइलों को पुन: उत्पन्न करते समय त्वरित फ़ाइलों के बजाय एम फ़ाइलें। मैंने जो मुद्दों को देखा है, वे कोरडाटा से संबंधित हैं, लेकिन अब तक काम करने योग्य हैं।

इसके अलावा, एक्ससीडीईई 8 25 डेटा इकाइयों और 30 से अधिक दृश्य नियंत्रकों के साथ एक ऐप के साथ आश्चर्यजनक रूप से ठोस काम कर रहा है, इसलिए मैं शिकायत नहीं कर रहा हूं।

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