मेरे पास एनएसएमयूटेबलएरे * बच्चों को डेटास्ट्रक्चर-क्लास "फू" में है जो "बार 1" और "बार 2" जैसे कई अन्य लोगों का सुपरक्लास है। वह सरणी बारू और बार 2 ऑब्जेक्ट्स को फू से उप-वर्गों की एक वृक्ष जैसी रिकर्सिव पेरेंट-बच्चों-संरचना प्राप्त करने के लिए स्टोर करती है। उन के माध्यम से सरणी में वस्तुओं का उपयोग करने के लिए, मैं पाश ऑब्जेक्टिव-सी में foreach पाश का उपयोग कर:उद्देश्य-सी एनएसएमयूटेबलएरे - एकाधिक कक्षाओं की वस्तुओं के साथ foreach पाश
for(Foo *aFoo in children) {
...
}
लेकिन अक्सर मैं सिर्फ पाश करने के लिए सरणी में वस्तुओं एक निश्चित वर्ग है के माध्यम से, इस में की जरूरत है अगर मैं सरणी बच्चों में कक्षा बार 1 के प्रत्येक ऑब्जेक्ट के लिए एक कार्य करना चाहता हूं। (बच्चों में बार 1 * anObject) के लिए उपयोग करना फिर से सभी वस्तुओं के माध्यम से loops और न केवल कक्षा बार 1 के साथ। क्या मुझे हासिल करने का कोई तरीका है?
यह काफी स्मृति-महंगा हो सकता है लेकिन जाहिर है कि कोई अन्य तरीका नहीं है। धन्यवाद –
नहीं, यह आपकी मेमोरी पदचिह्न को नहीं बदलता है, आप केवल – unbeli
मेमोरी में पहले से ही पढ़ रहे हैं, अगर आपको संग्रह में कक्षाओं के बीच अंतर करने के लिए 'isKindOfClass:' का उपयोग करने की आवश्यकता है, तो आपका डिज़ाइन पैटर्न मानक के बाहर है। यह विशेष रूप से सच है यदि आपके संग्रह में कक्षाओं के उदाहरण हैं जो पूरी तरह से आपकी रचना के हैं। – bbum