2016-01-16 7 views
5

के रूप में चिह्नित नहीं किया जा सकता है, मैं एक्सकोड 7.2, स्विफ्ट 2.1.1 का उपयोग कर रहा हूं। मैंदायरे: स्विफ्ट `let` संपत्ति को गतिशील

class B: Object { 
    dynamic let lists = List<A>() 
} 

नीचे एक क्षेत्र मॉडल वस्तु है लेकिन स्विफ्ट संकलक मुझे यह कहते हुए एक त्रुटि देता है:

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

मैंने रियलम के दस्तावेज को देखा जो कहता है:

वास्तविक मॉडल गुणों को रंग की आवश्यकता है अंतर्निहित डेटाबेस डेटा के लिए इन गुणों के लिए एक्सेसर्स बनने के क्रम में namic var विशेषता।

इस के लिए दो अपवाद हैं: सूची और RealmOptional गुण क्योंकि सामान्य गुण जा ऑब्जेक्टिव-सी क्रम है, जो गतिशील संपत्तियों की गतिशील प्रेषण के लिए प्रयोग किया जाता है में प्रतिनिधित्व नहीं कर सकते गतिशील के रूप में घोषित नहीं किया जा सकता, और हमेशा होना चाहिए let

लेकिन घोषित let इस मामले को हल करने के लिए प्रतीत नहीं होता है। मैं क्या खो रहा हूँ?

उत्तर

3

प्रलेखन आप उद्धृत निम्नलिखित (जोर मेरा) शामिल हैं:

सूची और RealmOptional गुण गतिशील के रूप में घोषित नहीं किया जा सकता क्योंकि सामान्य गुण ऑब्जेक्टिव-सी क्रम में नहीं दर्शाया जा सकता, [...], और हमेशा let के साथ घोषित किया जाना चाहिए।

इसका मतलब यह है अपनी संपत्ति तो जैसे घोषित किया जाना चाहिए:

let lists = List<A>() 

क्षेत्र स्विफ्ट प्रलेखन हाल ही में एक property declaration cheatsheet जो उम्मीद है कि घोषणाओं के विभिन्न प्रकार के लिए आवश्यकताओं को स्पष्ट करता है प्राप्त की।

+0

: डी * बैंगिंग हेड * – tropicalfish

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