2010-06-17 14 views
13

आइए ऐप्पल एपीआई संस्करण 1.0 में कहें, एक संपत्ति 'रंग' के साथ एक कक्षा एनएसएफयू है। एपीआई 1.1 संपत्ति 'आकार' जोड़ता है।एनएसओब्जेक्ट की एक निश्चित संपत्ति होने पर आप कैसे पता लगा सकते हैं?

मैं जानना चाहता हूँ कि क्या मैं गेटर का उपयोग कर सकते हैं: myFoo.size

[myFoo respondsToSelector: @selector (getSize)] अपेक्षा के अनुरूप काम नहीं करता है।

किसी ऑब्जेक्ट की संपत्ति होने पर पता लगाने का सही तरीका क्या है? धन्यवाद!

उत्तर

36

आप करीब हैं। आपका चयनकर्ता बिल्कुल उस संदेश को होना चाहिए जिसे आप ऑब्जेक्ट पर भेजना चाहते हैं:

if ([myFoo respondsToSelector:@selector(size)]) { 
    int size = [myFoo size]; // or myFoo.size in dot-notation. 
    // ... 
} 

काम करना चाहिए।

+5

यह ध्यान दिया जाना चाहिए कि ऐसा इसलिए है क्योंकि गुणों के लिए डिफ़ॉल्ट गेटर्स 'get' उपसर्ग को छोड़ देते हैं। सेटर्स के विपरीत जिनके पास 'सेट' उपसर्ग है। – Senseful

+0

हाहा, ओह। धन्यवाद! – strawtarget

+0

मैं इसे दूसरी तरफ कैसे कर सकता हूं? अगर मैं फू पर आकार सेट करना चाहता हूं? myFoo क्लास गुणों को नहीं जानता है इसलिए मैं आकार तक नहीं पहुंच सकता। –

संबंधित मुद्दे

 संबंधित मुद्दे