objective c - iPhone SDK synthesizing BOOL Array -
/ .h #import & lt; UIKit / UIKit.h & gt; @ इंटरफेस कुछViewController: UIViewController {BOOL boolArray [100]; } @ प्रॉपर्टी (नॉटैटमॉमिक) बॉस बूलअरे; @ एंड // एम # इमपोर्ट "कुछ ViewController" @ कार्यान्वयन SomeViewController @ संश्लेषण करें boolArray; @end
मुझे शायद एक मौलिक गलती थी, लेकिन मैं इसे अभी मिल सकता हूं, बुलअरे [100] के साथ संश्लेषण करना या तो काम नहीं करता।
आपको संभवतः पूर्ण प्रकार की आवश्यकता है, अर्थात @ प्रॉपर्टी (नॉनैटॉमिक) BOOL boolArray [100] ;
< पी> [100] महत्वपूर्ण प्रकार की जानकारी है, न केवल यह इंगित करता है कि आवंटित करने के लिए कितना स्थान है। इसके अलावा, मुझे लगता है कि संपत्ति को const BOOL *
जो सौंपा नहीं जा सकता है, इसलिए शायद यह पठनीय होना चाहिए
सही काम करना संभवतः यह केवल पढ़ने के लिए है, जिसका अर्थ है कि थिन सरणी के पॉइंटर को लाएगा और फिर सरणी के सदस्यों को असाइन करने के लिए उसे सबस्क्रिप्ट कर देगा।
वैकल्पिक रूप से आप NSArray
इसके लिए, लेकिन इसके लिए आप NSNumber
s को boolVaules के साथ उपयोग करने की आवश्यकता होगी जो कि इससे निपटने के लिए एक अधिक बायोटच है।
UPDATE
असल में बेवकूफ संकलक को किसी कारण से [] पसंद नहीं है। इसे आज़माएं:
@ इंटरफेस टेस्ट क्लास: एनएसओबीक्स्ट {const bool * boolArray; } @ प्रॉपर्टी (नॉनैटोमिक, रीडोनली) कॉन्स्ट्रबल BOOL * boolArray; @ एक्सपीमेंटेशन टेस्ट क्लास @ - (कॉन्स्ट बॉल *) बूलअरे {if (! BoolArray) boolArray = malloc (आकारओफ़ (BOOL) * 100); वापसी boolArray; } - (शून्य) डेलोक {[सुपर डेलोक]; निशुल्क ((शून्य *) boolArray); } @end
एक और अद्यतन
यह संकलित:
@ इंटरफेस टेस्ट क्लास: NSObject {BOOL boolArray [100]; } @ प्रॉपर्टी (नॉनैटोमिक, रीडोनली) कॉन्स्ट्रबल BOOL * boolArray; @ एक्सपीमेंटेशन टेस्ट क्लास @ - (कॉन्स्ट बॉल *) बूलअरे {वापसी बूलअरे; } @end
यह एक विचित्र मुद्दा है मैं चाहूंगा कि कंपाइलर वास्तव में समझाएगा कि वह क्या "जैसे सरणी प्रकार के साथ संपत्ति नहीं घोषित कर सकते हैं" या कुछ के बारे में नाखुश है।
अभी तक एक और अद्यतन
देखें यह प्रश्न:
जाहिरा तौर पर सी स्पेक के अनुसार, एक सरणी "सादा पुराना डेटा" प्रकार नहीं है और उद्देश्य-सी युक्ति केवल आपको पीओडी प्रकारों के लिए गुणों को घोषित करने देता है। माना जाता है कि यह पीओडी की परिभाषा है:
लेकिन यह पढ़ रहा है कि यह पीओडी की एक सरणी की तरह लगता है एक पीओडी है। तो मुझे यह नहीं मिलता।