कैसे एक NSSet से एक NSMutableArray वापस करने के लिए


104

मैं एक की सामग्री डाल करने में सक्षम हूँ NSSetएक में NSMutableArrayइस तरह:

NSMutableArray *array = [set allObjects];

कंपाइलर शिकायत करता है, क्योंकि [सेट allObjects] एक NSArrayनहीं एक देता है NSMutableArray। यह कैसे तय किया जाना चाहिए?

जवाबों:


218

चूंकि -allObjectsएक सरणी देता है, आप इसके साथ एक परिवर्तनशील संस्करण बना सकते हैं:

NSMutableArray *array = [NSMutableArray arrayWithArray:[set allObjects]];

या, वैकल्पिक रूप से, यदि आप ऑब्जेक्ट ओनरशिप को हैंडल करना चाहते हैं:

NSMutableArray *array = [[set allObjects] mutableCopy];

7
नोट: यदि setहै तो दो विधियों में सूक्ष्म अंतर है nil
Zach Langley

-1

मैंने NSMutableArray की विधि 'addObjectsFromArray' का उपयोग करके सभी NSSet ऑब्जेक्ट्स को NSMutableArray में असाइन करने के लिए क्रैश का समाधान किया :

[mutableArray addObjectsFromArray:[cg_Schedule.schedule_Days allObjects]];

आशा है कि यह आपकी मदद करेगा।


हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.