2015-08-23 7 views
42

प्रकार का मूल्य नहीं डाला जा सका मैं अपने स्टोरीबोर्ड में एक कस्टम संग्रह दृश्य दृश्य का उपयोग करता हूं। जब मैं अनुप्रयोग शुरू मैं यह संदेश प्राप्त:'UICollectionViewCell'

TestProject.CollectionViewCell के प्रकार 'UICollectionViewCell' का मान डाली नहीं कर सका।

उत्तर

141

एक्सकोड 6 में संग्रहव्यू कंट्रोलर के लिए टेम्पलेट देखने के लिए कोड की इस पंक्ति के साथ आता है, जो आपके स्टोरीबोर्ड में विनिर्देश बदलता है।

// Register cell classes 
self.collectionView!.registerClass(UICollectionViewCell.self, forCellWithReuseIdentifier: reuseIdentifier) 

, बस इसे हटा दें।

+0

का उपयोग कर वर्ग पंजीकृत करना चाहते हैं रजिस्टर करेंगे, दृश्य अब लोड करता है। हालांकि, अब UICollectionView भयानक लग रहा है। मेरा मानना ​​है कि कोड की उस पंक्ति को हटाने का मतलब है कि मेरी स्टोरीबोर्ड में सेट की गई सभी लेआउट बाधाएं, अब जंक हैं और उन्हें प्रोग्रामेटिक रूप से जोड़ा जाना है? –

+0

मुझे लगता है कि बाधा समस्या का एक और कारण है। एप्पल डॉक्स से: ": forIndexPath: बुला dequeueReusableCellWithReuseIdentifier से पहले कैसे दिए गए प्रकार का एक नया सेल बनाने के लिए संग्रह को देखने बताने के लिए विधि: forCellWithReuseIdentifier: संग्रह को देखने के विधि, आप इस विधि या registerNib उपयोग करना चाहिए।" मेरा अनुभव यह है कि यदि सेल को स्टोरीबोर्ड में परिभाषित किया गया है तो रजिस्टर नीब स्वचालित रूप से काम करता प्रतीत होता है। – coco

+7

सामान्य नोट: स्टोरीबोर्ड प्रोटोटाइप का उपयोग करते समय सेल कक्षाओं को पंजीकृत करना आवश्यक नहीं है। यदि आप पंजीकरण करते हैं, तो यह आपके प्रोटोटाइप को पीछे छोड़ देगा। – Wizkid

4

मैं जब मेरे इकाई परीक्षण में एक स्टोरीबोर्ड से एक ViewController instantiating इस त्रुटि मारा।

storyboard.instantiateViewControllerWithIdentifier("someVC") as! MyViewController 

समस्या यह थी कि मैंने स्टोरीबोर्ड में उस वीसी में पहचान निरीक्षक में एक विशिष्ट मॉड्यूल असाइन किया था। मैंने इसे हटा दिया है, इसलिए यह वर्तमान मॉड्यूल पर डिफ़ॉल्ट है जो परीक्षण करते समय एप्लिकेशन मॉड्यूल है और टेस्ट मॉड्यूल परीक्षण करते समय।

36

मुझे इस समस्या का सामना करना पड़ता है, क्योंकि viewDidLoad() में मैंने UICollectionViewCell कक्षा के साथ अपना सेल पंजीकृत किया। मेरी cellForItemAtIndexPath में dequeueReusableCell के लिए CustomSubcalssCollectionViewCell इस्तेमाल किया।

सुनिश्चित करें कि registerClass और dequeueReusableCell एक ही कक्षा समस्या

self.registerClass(SomeUICollectionCellClass.self, forCellWithReuseIdentifier: reuseIdentifier) 

let cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) as! SomeUICollectionCellClass 
4

मैं इस त्रुटि प्राप्त जब कस्टम वर्ग (Xcode निरीक्षक पर) अभी भी अपने वर्ग के बजाय डिफ़ॉल्ट UICollectionViewCell करने के लिए सेट किया था हल कर रहे हैं TestProject.CollectionViewCell के लिए मेरी कस्टम कक्षा से।

इसे ठीक करने के लिए, बस अपने कार्यान्वयन करने के लिए कस्टम वर्ग बदल जाते हैं।

Custom Class Section

Document Outline

0
self.collectionView!.register(MyCollectionViewCell.self, forCellWithReuseIdentifier: reuseIdentifier) 

आप इस लाइन को हटाना नहीं है। आप अपनी खुद की सेल वर्ग UICollectionViewCell.self द्वारा विरासत में मिला है, तो आप यह मेरे लिए एक त्रुटि पैदा कर रहा था और हटाने की बात है, कोड

संबंधित मुद्दे