मुझे इस अवसर का कई अवसरों में सामना करना पड़ा है। मुझे पता है कि ऐसा क्या लगता है। लेकिन मैं वास्तव में इसकी बेहतर समझ चाहता हूं।@NSManaged क्या करता है?
मैं क्या देखा के बारे में @NSManaged
- आधारित नहीं प्रलेखन पर है, लेकिन बार-बार इस्तेमाल के माध्यम से:
- यह जादुई कुंजी मान कोडिंग बदल देता है।
- यह लगभग ऑब्जेक्टिव-सी में
@dynamic
के बराबर (जो मैं के बारे में ज्यादा पता नहीं है) - मैं इसे
Parse SDK
सेPFObject
उपवर्ग की जरूरत है। यह आमतौर पर बैकएंड से/मूल्यों को पढ़ने/लिखने के लिए केवीसी का उपयोग करता है। @NSManaged
के साथ किसी भी चर को उपसर्ग करना संकलक को बंद कर देगा जब मैं प्रारंभकर्ता के भीतर प्रारंभ नहीं करता हूं।
औपचारिक परिभाषा (कोर डाटा एप्पल डॉक्स में):
कोर डाटा NSManagedObject वर्ग के उपवर्गों में अंतर्निहित भंडारण और गुण के कार्यान्वयन प्रदान करता है। अपने प्रबंधित ऑब्जेक्ट सबक्लास में प्रत्येक प्रॉपर्टी परिभाषा से पहले @NSManaged विशेषता जोड़ें जो आपके कोर डेटा मॉडल में किसी विशेषता या रिश्ते के अनुरूप है। उद्देश्य-सी में @ गतिशील विशेषता की तरह, @NSManaged विशेषता स्विफ्ट कंपाइलर को सूचित करती है कि किसी संपत्ति का संग्रहण और कार्यान्वयन रनटाइम पर प्रदान किया जाएगा। हालांकि, @ गतिशील के विपरीत, @NSManaged विशेषता केवल कोर डेटा समर्थन के लिए उपलब्ध है।
मुझे लगता है कि क्या हो गया है: @NSManaged
साथ
चर कुछ के लिए संकलन समय चेकों से मुक्त किया जाएगा।
मैं औपचारिक दस्तावेज और इस मामले के बारे में विभिन्न अन्य अतः सवाल पढ़ा है:
@synthesize vs @dynamic, what are the differences?
What is common case for @dynamic usage?
मैं सहज कुछ परिदृश्यों को पहचान जहां मैं इसे इस्तेमाल करना चाहिए। मैं आंशिक रूप से जानता है कि यह क्या करता है। लेकिन जो मैं चाहता हूं वह शुद्ध समझ है कि यह क्या करता है।
आगे टिप्पणियों:
एक PFObject
Parse SDK
में अपने मूल्यों को एक्सेस करने के लिए Key Value Coding
पर निर्भर करता है।PFObject
निम्नलिखित accessors प्रदान करता है:
objectForKey:
let score = results.objectForKey("descriptionOfResult")
//returns the descriptionOfResult value from the results object
setObject:forKey:
results.setObject("The results for a physics exam", forKey: "descriptionOfResult")
//sets the value of descriptionOfResult
मेरी समझ के लिए
, @NSManaged
जादुई समझता है कि चर मैं स्वचालित रूप से घोषित किया है get
के लिए ऊपर accessors का उपयोग करता है और set
। मैं जानना चाहता हूं कि यह कैसे करता है (अगर मैं समझता हूं कि सत्य है), और जो कुछ भी करता है।
क्या आपने कभी यह पता लगाया कि आपने जो व्यवहार देखा है (आगे के अवलोकन में) कैसे हासिल किया गया था? @NSManaged सही एक्सेसर्स का उपयोग कैसे करता है? – Jason
@NSManaged विशेषता केवल कोर डेटा समर्थन के लिए उपलब्ध है पूरी तरह से सही नहीं है। तुम भी CoreAnimation तेज चर है कि आप पर चेतन करना चाहते हैं के लिए इसका इस्तेमाल करने की जरूरत है: http://stackoverflow.com/questions/24150243/are-needsdisplayforkey-actionforkey-overrides-working-correctly – ambientlight