यह उम्मीद में दो भाग प्रश्न है कि मैं विषय के बारे में समझ सकता हूं।आईओएस संपत्ति घोषणा स्पष्टीकरण
1) मुझे ऐसा लगता है आप objective c
में एक वर्ग के लिए एक संपत्ति घोषित करने के लिए दो लोकप्रिय विकल्प है। एक हैडर को हेडर के क्लास बॉडी जैसे संपत्ति जोड़ना है।
@interface MyClass : NSObject {
NSArray *myArray;
}
या आप @interface
शरीर के बाद और @end
बयान तो की तरह से पहले ही जोड़ सकते हैं।
@interface MyClass : NSObject {
//
}
@property (nonatomic, retain) NSArray *myArray;
इन दो "शैली" और जब आप एक दूसरे के ऊपर चुनें करते के बीच क्या अंतर है?
2) @property
के बाद आपको (nonatomic, retain)
जैसे विकल्प मिलते हैं। वे क्या हैं और क्यों/कब क्या आप विभिन्न विकल्पों का उपयोग करते हैं?
सवाल का यह एकमात्र जवाब के भाग 2 के लिए संरक्षित से अपने Specifier निर्धारित किया है। साइमन का जवाब भाग 1 पर चर्चा करता है। –
@ मार्क आर्मरी - मुझे लगा कि भाग 1 वास्तव में मूल था, और अन्य उत्तरों ने इसका जवाब दिया था क्योंकि मैं जवाब दे रहा था। यहां डुप्लिकेट जानकारी जोड़ने की जरूरत नहीं है। –
# 2 पूरी तरह से गलत है। 'परमाणु 'गुण * थ्रेड-सुरक्षा सुनिश्चित नहीं करते हैं; बल्कि यह परमाणुता सुनिश्चित करता है। यदि थ्रेड ए और थ्रेड बी दोनों लिख रहे हैं, तो 'परमाणु' यह सुनिश्चित करता है कि परिणाम एक संपूर्ण मूल्य होगा, जिसका अर्थ है या तो एक या दूसरे। कौन सा अपरिभाषित है। थ्रेड-सुरक्षित कोड लिखना 'परमाणु' गुणों का उपयोग करने जितना आसान नहीं है। थ्रेडिंग प्रोग्रामिंग गाइड के "सिंक्रनाइज़ेशन" अनुभाग को देखें: http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/Multithreading/ThreadSafety/ThreadSafety.html#//apple_ref/doc/uid/10000057i -CH8-SW1 –