में मुद्दों कास्टिंग मैं CoreData
के साथ एक्सकोड 6 पर स्विफ्ट का उपयोग कर रहा हूं।स्विफ्ट और कोरडाटा परीक्षण बनाम गैर-परीक्षण
मैंने रिलीज नोट्स पढ़े हैं और मॉड्यूल नाम (ऐप नाम) के साथ कोर डेटा मॉडल को चिह्नित करना सुनिश्चित करने के बारे में यह issue देखा है ताकि आप अपने मॉडल प्रकार पर रन टाइम पर NSManagedObject
डाल सकें।
जब मैं ऐसा करता हूं, तो मैं ठीक से चलाने के लिए एक ऐप प्राप्त कर सकता हूं (अच्छा!)। लेकिन, मेरा मुद्दा है, जब मैं परीक्षण करने की कोशिश है कि एक ही कोड, परीक्षण हमेशा दुर्घटना होगा जब भी डाली एक Swift dynamic cast failed
त्रुटि (बुरा :() के साथ होता है। यह यह मुश्किल अपने आवेदन का परीक्षण करने में आता है।
है ? वहाँ मॉड्यूल का नाम हम किसी भी संकेत दिए गए के लिए पहले से ही ऐप्लिकेशन चल बनाम परीक्षण के लिए बनाया गया है का उपयोग
धन्यवाद पर कोई प्रभाव ...
अप का पालन करें:
यह आदर्श नहीं है: जैसा ऊपर बताया गया है, स्विफ्ट को कोर डी का उपयोग करने के लिए एटीए मॉडल, आपको कक्षा के नाम को अपने ऐप के नाम से सजाने की जरूरत है। यह ऐप बनाने के लिए मिलता है, लेकिन परीक्षण एक अलग ऐप नाम के तहत चलाए जाते हैं! इसका मतलब है कि आपको डेटा मॉडलर में जाना होगा और myAppname.myEntity
से myAppnameTests.myEntity
से उस वर्ग का नाम बदलना होगा, इससे पहले कि आप उन संस्थाओं का उपयोग किसी नाम से उपयोग या कॉल करते समय कर सकें।
@objc(YourEntity)
class YourEntity: NSManagedObject {
...
}
मैं एक बग के रूप में इस लगता है कि अगर अपनी परियोजना किसी भी objective- शामिल नहीं करता है:
@objc (MyClassName) के साथ कक्षा का नाम सजाने का प्रयास करें। यह सामान्य नाम मैंगलिंग को बाईपास करेगा। फिर आपको डेटा मॉडल में मॉड्यूल नाम के बारे में चिंता करने की आवश्यकता नहीं है। –
यदि मैं अपनी इकाई कक्षाओं को तेज़ी से लिखता हूं, तो उन्हें 'objc (xxx)' का उपयोग करके सजाने के लिए - मुझे गतिशील कास्ट त्रुटि मिलती है जब भी मैं उस नाम के साथ अन्य स्विफ्ट कोड में इकाई का उपयोग करने का प्रयास करता हूं ... निराशाजनक ... –
आज़माएं यह: http://stackoverflow.com/a/26568813/438063 – Lucien