मैं प्रत्येक संग्रहदृश्य सेल के लिए तालिका दृश्य सामग्री को बदलने की कोशिश कर रहा हूं, इसके लिए मैं एक खाली सरणी बना रहा हूं और मैं क्लिक किए गए प्रत्येक सेल के लिए सरणी डेटा बदल दूंगा। मैं एक सरणी से दूसरे में डेटा कॉपी करने में असमर्थ हूँ।

यह तेजी से 4.2 है, और मैं सिर्फ सामान सीखने की कोशिश कर रहा हूं, इसलिए कोई बैकएंड शामिल नहीं है।

var PictureArray = [UIImage(named: "s1") , UIImage(named: "s2"), UIImage(named: "s3"), UIImage(named: "s4"), UIImage(named: "s5") ]

copyArray.append(PictureArray) 

और त्रुटि है

वैकल्पिक प्रकार का मान 'UIImage?' 'UIImage' प्रकार के मान से अलिखित होना चाहिए

-1
Ahmer Hassan 27 सितंबर 2019, 14:50
शेयर कॉपीअरे डिक्लेरेशन कोड, इसमें कौन सा डेटाटाइप है?
 – 
Mumtaz Hussain
27 सितंबर 2019, 14:59
यदि आप अपनी प्रतिलिपि सरणी में सभी आइटम चाहते हैं तो आप copyArray = PictureArray का उपयोग क्यों नहीं करते हैं।
 – 
Abhishek
27 सितंबर 2019, 15:16
मुमताज़ भाई, चक्कर ऐसी था के मुझे ऐक वह स्क्रीन पी टेबल व्यू और कलेक्शन व्यू चेंज करना था, तो मैं चाह रहा था के हर कलेक्शन व्यू पी क्लिक होने पे ऐरे चेंज करुण, उसके लिए मैने ऐरे कॉपी करना द, लेकिन अब में इस्को तार्किक रूप से आसान तरीका मुख्य कर लिया है, बीटीडब्ल्यू कॉपीएरे यूआईएममेज प्रकार का था। और त्रुटि दे रहा था "'UIImage?' 'UIImage' प्रकार के मान के लिए अलिखित होना चाहिए"
 – 
Ahmer Hassan
28 सितंबर 2019, 00:29
मैंने इस तरह से भी कोशिश की, त्रुटि समान थी, और अब मैंने सरणी की प्रतिलिपि बनाने के अलावा किसी अन्य तर्क का उपयोग करके इस समस्या को हल किया।
 – 
Ahmer Hassan
28 सितंबर 2019, 00:36

3 जवाब

सबसे बढ़िया उत्तर

नीचे दिए गए कोड का प्रयास करें:

var PictureArray = [UIImage(named: "s1") , UIImage(named: "s2"), UIImage(named: "s3"), UIImage(named: "s4"), UIImage(named: "s5") ]
var cpArray:[[UIImage]] = []
cpArray.append(PictureArray as! [UIImage])

यहाँ cpArray में 0 वीं अनुक्रमणिका में PictureArray शामिल है।

You can access 1st image of pictureArray using cpArray[0][0]
0
SM Abu Taher Asif 27 सितंबर 2019, 15:24

ये कोशिश करें:

var PictureArray = [UIImage(named: "s1") , UIImage(named: "s2"), UIImage(named: "s3"), UIImage(named: "s4"), UIImage(named: "s5") ]
let arrCopy = pictures.map{$0}
1
Abhi Yaduwanshi 27 सितंबर 2019, 15:31

UIImage(named : "Image Name") हमेशा एक optional UIImage लौटाएं।

var PictureArray = [UIImage(named: "s1") , UIImage(named: "s2"), UIImage(named: "s3"), UIImage(named: "s4"), UIImage(named: "s5") ]

स्पष्ट रूप से PictureArray सरणी इस प्रकार की है [UIImage?] या Array<UIImage?>

आप सरणी को कॉपी करने के लिए सरणी डालने का प्रयास कर रहे हैं, त्रुटि संदेश से यह स्पष्ट रूप से माना जाता है कि यह [UIImage] है

स्पष्ट रूप से [UIImage] != [UIImage?]

इसलिए आपको त्रुटि मिल रही है।

आप उच्च आदेश विधि का उपयोग करके कर सकते हैं

PictureArray = PictureArray.map{$0 as? UIImage}

copyArray.append(PictureArray)

या यदि आप बचकाने प्रकार की कोडिंग का उपयोग करना चाहते हैं, तो PictureArray के अंदर एक लूप चलाएं

for case let image in PictureArray {
    if image != nil {
        copyArray.append(image)
    }
}

0
Ankur Lahiry 27 सितंबर 2019, 16:16