2011-03-22 13 views
5
@property (retain) int myInteger; 

मुझे एक त्रुटि फेंकता है ऐसा इसलिए है क्योंकि जाहिरा तौर पर int एक वस्तु माना जाता है नहीं ... लेकिन मैं @synthetize बात के साथ एक गेटर/सेटर विधि बनाने का लाभ प्राप्त करना चाहते हैं, लेकिन एक int साथ। मैं ऐसा कैसे प्राप्त कर सकता हूं? क्या समकक्ष है?एक int के गेटर/सेटर बनाना?

उत्तर

25
@property (assign) int chunkID; 

या

@property (readonly) int chunkID; 

आप पूर्णांकों की तरह एक आदिम प्रकार बनाए रखने नहीं कर सकते। केवल वस्तुओं को बनाए रखा जा सकता है ...

+5

फिर वह जान जाएगा कि मुझे कौन सा चयन करना है ... – Macmade

+0

क्या यह ठीक है अगर मैं दोनों का उपयोग करता हूं? क्या मुझे @ सिंथेसाइज कुंजी दो बार या कुछ डालना है? – Voldemort

+0

नहीं, एक ही संपत्ति के लिए, आप केवल चुन सकते हैं कि गेटर/सेटर्स विधियां (पहला उदाहरण) हैं, या सिर्फ एक गेटर (दूसरा उदाहरण) – Macmade

9

इस का उपयोग करें:

@property (nonatomic, assign) int chunkID; 

assign डिफ़ॉल्ट ताकि आप इसे बाहर छोड़ने के लिए चाहते हो सकता है है।

आपको assign संपत्ति का प्रकार उपयोग करने की आवश्यकता है क्योंकि आप एक आदिम वस्तु प्रकार (यानी int) से निपट रहे हैं। इस तरह के प्रकार को बनाए रखा नहीं जा सकता है।

केवल NSObject के उप-वर्गों को बनाए रखा/जारी किया जा सकता है।

+0

शायद यह परमाणु होना चाहिए ... – Macmade

+0

यह एक अच्छा अभ्यास होगा ओमेगा यह समझने के लिए कि क्या यह करता है। – Sylvain

+0

...... nonatomic क्या है? क्षमा करें, मैं इस भाषा में एक प्रकार का नौसिखिया हूं =/ – Voldemort

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