ऑटो उत्पन्न वर्गों के लिए समाधान
Xcode के कोड जेनरेटर से (ios 10 और ऊपर)
यदि आप "YourClass" नामक इकाई बनाते हैं, तो Xcode स्वचालित रूप से "डेटा मॉडल इंस्पेक्टर" में कोडेन प्रकार को डिफ़ॉल्ट रूप में "क्लास डेफिनिशन" का चयन करेगा। यह नीचे कक्षाएं उत्पन्न करेगा:
स्विफ्ट संस्करण:
// YourClass+CoreDataClass.swift
@objc(YourClass)
public class YourClass: NSManagedObject {
}
उद्देश्य-सी संस्करण:
// YourClass+CoreDataClass.h
@interface YourClass : NSManagedObject
@end
#import "YourClass+CoreDataProperties.h"
// YourClass+CoreDataClass.m
#import "YourClass+CoreDataClass.h"
@implementation YourClass
@end
हम Xcode में "क्लास डेफिनिशन" के बजाय कोडजेन विकल्प से "श्रेणी / एक्सटेंशन" चुनेंगे।
अब, यदि हम एक एनम जोड़ना चाहते हैं, तो अपने ऑटो-जनरेट किए गए वर्ग के लिए एक और एक्सटेंशन बनाएं, और नीचे अपनी एनम परिभाषाएँ जोड़ें:
// YourClass+Extension.h
#import "YourClass+CoreDataClass.h" // That was the trick for me!
@interface YourClass (Extension)
@end
// YourClass+Extension.m
#import "YourClass+Extension.h"
@implementation YourClass (Extension)
typedef NS_ENUM(int16_t, YourEnumType) {
YourEnumTypeStarted,
YourEnumTypeDone,
YourEnumTypePaused,
YourEnumTypeInternetConnectionError,
YourEnumTypeFailed
};
@end
अब, आप कस्टम एक्सेसर्स बना सकते हैं यदि आप मानों को एनम तक सीमित करना चाहते हैं। कृपया प्रश्न के स्वामी द्वारा स्वीकृत उत्तर की जाँच करें । या जब आप नीचे दिए गए कास्ट ऑपरेटर का उपयोग करके स्पष्ट रूप से रूपांतरण विधि के साथ सेट करते हैं, तो आप अपनी दुश्मनी को परिवर्तित कर सकते हैं:
model.yourEnumProperty = (int16_t)YourEnumTypeStarted;
यह भी देखें
Xcode स्वचालित उपवर्ग पीढ़ी
Xcode अब मॉडलिंग टूल में NSManagedObject उपवर्गों की स्वचालित पीढ़ी का समर्थन करता है। इकाई निरीक्षक में:
मैनुअल / कोई भी डिफ़ॉल्ट और पिछला व्यवहार नहीं है; इस स्थिति में, आपको अपना उपवर्ग लागू करना चाहिए या NSManagedObject का उपयोग करना चाहिए। श्रेणी / विस्तार, क्लासनेम + CoreDataGeneratedProperties नामक फ़ाइल में एक क्लास एक्सटेंशन उत्पन्न करता है। आपको मुख्य वर्ग को घोषित करने / लागू करने की आवश्यकता है (यदि ओब्ज-सी में, हेडर के माध्यम से एक्सटेंशन ClassName.h नाम का आयात कर सकता है)। क्लास डेफिनिशन, ClassName + CoreDataClass के साथ-साथ कैटेगरी / एक्सटेंशन के लिए जनरेट की गई फ़ाइलों की तरह सबक्लास फाइलें भी बनाता है। उत्पन्न फ़ाइलों को DerivedData में रखा जाता है और मॉडल के सहेजे जाने के बाद पहले बिल्ड पर फिर से बनाया जाता है। उन्हें Xcode द्वारा अनुक्रमित भी किया जाता है, इसलिए संदर्भों पर कमांड-क्लिक करना और फ़ाइलनाम कार्यों द्वारा तेजी से खोलना।
enum
?