डीकोड किया गया है मेरे पास UICollectionViewCell
का सबक्लास है। सेल स्टोरीबोर्ड में कई घटकों के साथ दृश्यमान रूप से डिज़ाइन किया गया है और ये घटक स्टोरीबोर्ड का उपयोग करके स्विफ्ट उपclass में चर के लिए बाध्य हैं।UICollectionViewCell में बाइंडिंग को पुनर्स्थापित कैसे करें इसे
स्विफ्ट क्लास डेटा स्रोत से पुनर्प्राप्त डेटा से घटकों को पॉप्युलेट करने के लिए तर्क प्रदान करता है।
उदाहरण के लिए:
class InfoCollectionViewCell : UICollectionViewCell {
@IBOutlet weak var mainPanel : UIView!
@IBOutlet weak var panel1 : UIView!
@IBOutlet weak var firstName : UILabel!
@IBOutlet weak var lastName : UILabel!
@IBOutlet weak var address : UILabel!
etc ...
func setVariousProperties(etc) {
firstName.text = ... etc
डेटा स्रोत है सामान्य बात:
let cell = collectionView.dequeueReusableCellWithReuseIdentifier("InfoCell", forIndexPath:indexPath)
if let c : InfoCollectionViewCell = cell as? InfoCollectionViewCell {
c.setVariousProperties(...)
}
मैं मूल रूप से केवल कार्यान्वित डिकोड/एनकोड एक "लागू नहीं किया" अभिकथन युक्त तरीकों, लेकिन यह स्पष्ट हो गया कभी-कभी ढांचा वर्ग को एन्कोडिंग और डीकोडिंग करता था। मैंने घटकों को सहेजे बिना डमी एन्कोड/डिकोड विधियों को कार्यान्वित किया जिसके परिणामस्वरूप घटकों तक पहुंचने पर शून्य मूल्यों के साथ अनुमानित समस्याएं हुईं।
तो ऐसा प्रतीत होता है कि मुझे UICollectionViewCell
उप-वर्ग में सभी नियंत्रणों के एन्कोडिंग और डिकोडिंग को लागू करने की आवश्यकता है, या मुझे एक बेहतर तरीका मिलना है।
ऐसा लगता है कि मुझे वास्तव में आवश्यकता नहीं है (मुझे नहीं लगता) घटकों की सामग्री को बचाने के लिए, क्योंकि वे सबक्लास द्वारा किसी भी तरह से फिर से उपयोग के लिए होने जा रहे हैं: मैं ओवरराइट करूँगा घटक सामग्री डेटा स्रोत से मूल्यवान होगा।
जाहिर है, सभी नियंत्रण स्टोरीबोर्ड में परिभाषित किए गए हैं। मैं उन्हें मैन्युअल रूप से इनिट विधि में स्टोरीबोर्ड से नाम से ला सकता हूं, लेकिन यह समान रूप से थकाऊ लगता है और नियंत्रण और चर के ग्राफिकल लिंकिंग को अनावश्यक बनाता है।
क्या कोई बेहतर तरीका है?
क्या मैं बस "कनेक्शन पुनर्स्थापित" या ऐसा कुछ कह सकता हूं?
संपादित करें:
प्रश्न पोस्ट करने और इनाम जोड़ने के बीच कहीं न कहीं, समस्या हो रहा बंद कर दिया। अब मुझे पता है कि मेरे घटकों की एन्कोड विधि को कॉल नहीं किया जा रहा है। तो किसी कारण से, ढांचा मेरी वस्तुओं को क्रमबद्ध करने और उन्हें deserialise करने का फैसला कर रहा था, लेकिन अब यह नहीं है। इसलिए समस्या नहीं हो रही है और मैं एक स्टैक-ट्रेस की आपूर्ति करने में सक्षम नहीं हूं।
यह कल्पना की जा सकती है कि एक्सकोड के कुछ अपडेट ने इस समस्या को ठीक कर दिया है, या यह कुछ और हो सकता है।
मुझे स्पष्ट रूप से अभी भी चिंता है कि वहां कुछ बग वहां छिपी हुई है।
किसी को भी समस्या आ रही? मैं टिप्पणियों की सराहना करता हूं। – rghome