मेरे पास एक एमवीसी एप्लीकेशन है। मॉडल में ऐसी संपत्ति है जो एक संरचना NSSize
है। यह इस तरह से लिखने योग्य है:NSValue इसका जादू कैसे करता है?
- (void)setSize:(NSSize)aSize;
दृश्य सेट इस NSSize
कुंजी-मान-कोडिंग के प्रयोग से। हालांकि, अगर आप नहीं की-वैल्यू-कोड एक struct कर सकते हैं, तो मैं एक NSValue
-object इस तरह में लपेटा:
[theView setValue:[NSValue valueWithSize:mySize]
forKey:@"theModel.size"];
मेरी समझ के लिए, इस के बाद से एक्सेसर एक struct अपेक्षा करता है और नहीं एक NSValue
काम नहीं करना चाहिए । लेकिन यह पूरी तरह से काम करता है। जादुई ढंग से।
यह कैसे संभव है?
+1 यह एक अच्छा सवाल है, क्योंकि कुंजी-मूल्य कोडिंग कोको फ्रेमवर्क के बारे में वास्तव में * कमाल * चीजों में से एक है। इसके अलावा, "जादू" टैग के लिए +1! –