2015-06-30 24 views
7

में गतिशील मैं KVO का उपयोग कर तेजी में Bool मूल्य का पालन करेंगे और इस तरह dynamic संशोधक जोड़ने के लिए कोशिश कर रहा हूँ नहीं चिह्नित किया जा सकता है:बूल संपत्ति तेजी से

dynamic var isRestricted:Bool? 

और संकलक कहना

संपत्ति नहीं किया जा सकता गतिशील चिह्नित क्योंकि इसका प्रकार उद्देश्य-सी

में प्रतिनिधित्व किया गया तो मुझे क्या करना चाहिए? क्या मुझे इसके लिए एनएसएनंबर में बदलना चाहिए? और मूल्य को देखने के लिए सबसे अच्छा अभ्यास क्या है?

im का उपयोग कर xcode 7 बीटा 2

+0

क्या आपने कोशिश की: 'गतिशील var isRestricted = बूल()' –

उत्तर

24

वास्तविक समस्या यह है कि वैकल्पिक बूलियन्स ऑब्जेक्टिव-सी में नहीं दर्शाया जा सकता है (और इसलिए गतिशील चिह्नित नहीं)। एक गैर-वैकल्पिक

dynamic var isRestricted : Bool = false 

समस्या का समाधान करना चाहिए।

आम तौर पर, "optionals" की अवधारणा NSObject उपवर्गों के उदाहरण के लिए Objective-C, लेकिन वैकल्पिक संदर्भ में मौजूद नहीं है ऑब्जेक्टिव-सी में नल वस्तु संकेत को पाट रहे हैं, ताकि

dynamic var foo: Foo? 

यदि अनुमति दी है (और केवल) यदि FooNSObject का उप-वर्ग है।

+0

प्रकाशन! धन्यवाद! –

+1

यह आंशिक रूप से सही है। आप ** ** ** वैकल्पिक गुणों को गतिशील के रूप में चिह्नित कर सकते हैं, लेकिन बुलियन और न ही पूर्णांक। उदाहरण के लिए आपके पास 'गतिशील var myObject: MyClass हो सकता है?' ' – vomi

+1

@ वोमी: आप पूरी तरह से सही हैं, प्रतिक्रिया के लिए धन्यवाद। मुझे आशा है कि यह अभी सही है। –

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