में कोरडाटा-इकाइयों को सहेजें कोरडाटा इकाई की कल्पना करें (उदा। searchEngine
नामित)।
NSManagedObjectContext
इस इकाई के कुछ "उदाहरण" प्रबंधित करता है।
अंतिम उपयोगकर्ता NSPopupButton
के साथ अपने "standard searchEngine"
का चयन करने में सक्षम होने जा रहा है।
एनएसपीओपअप बटन के selected object
एनएसयूसर डीफॉल्ट पर बाध्य होना चाहिए।
समस्या:NSUserDefaults
1)
@try {बचाने}
a)
आप NSUserDefaults करने के लिए चयनित "उदाहरण" सीधे बचाने की कोशिश अगर वहाँ कुछ इस तरह आता है:-[NSUserDefaults setObject:forKey:]: Attempt to insert non-property value ' (entity: searchEngine; id: 0x156f60 ; data: { url = " http://google.de/ "; someAttribute = 1; name = "google"; })' of class 'searchEngine'.
b)
हैं आप "इंस्टेंस" को एनएसडीटा में कनवर्ट करने का प्रयास करते हैं:-[searchEngine encodeWithCoder:]: unrecognized selector sent to instance 0x1a25b0तो किसी भी विचार को इस संस्था को एक प्लेस्ट-संगत डेटा में कैसे प्राप्त किया जाए?
2)
@try {registerDefaults}आमतौर पर
registerDefaults:
विधि+ (void)initialize
में कार्यान्वित किया जाता। यहां समस्या यह है कि कोरडाटा सहेजे गए इकाइयों को अपने डेटाबेस से लोड करने से पहले इस विधि को बुलाया जाता है। तो मैं एक मौजूदा वस्तु के लिए डिफ़ॉल्ट सेट नहीं कर सकता, है ना?
मुझे पता है, लंबे समय से सवाल ... लेकिन: try {[मुझे प्रदान करते हैं: विवरण]}; D
Mmh। क्या आपको पता है कि क्यों 'सरणी! = शून्य' लेकिन '[सरणी गिनती] <0' ... यह काम नहीं करना चाहता ... – papr
यदि सरणी है! = शून्य तो कोई त्रुटि नहीं है लेकिन कोई रिकॉर्ड भी नहीं हो सकता है लौटा ([सरणी गिनती] == 0) ... हालांकि, [सरणी गिनती] <0 * कभी * नहीं हो सकता क्योंकि गिनती संदेश एक NSUInteger प्रकार देता है। संकलक सबसे अधिक संभावना है कि इस तरह के किसी भी परीक्षण ([सरणी गिनती] <0) स्ट्रिप्स। –
हाँ। मेरा मतलब था ([सरणी गिनती] == 0)। उसके लिए खेद है। मैं केवल यह व्यक्त करना चाहता था कि इस सरणी में कुछ भी नहीं है। ;) – papr