कॉपी करना मैं एक निब फ़ाइल से tableView:cellForRowAtIndexPath:
में एक कस्टम टेबल सेल पढ़ रहा हूं। यह मेरे उद्देश्यों के लिए बहुत अच्छा काम करता है, सिवाय इसके कि यह काफी धीमा है।UITableViewCell
अब, मुझे पता है कि लंबी अवधि में करने के लिए सही बात यह है कि सेल को पूरी तरह से कोड में बनाना है, और एक दृश्य का उपयोग करना है, और इसी तरह। लेकिन यह एक प्रोटोटाइप है, और मैं इसमें इतना प्रयास नहीं करना चाहता हूं।
अभी के लिए, अगर मैं UIViewController
सबक्लास में केवल एक बार निब पढ़ रहा था, तो मुझे खुशी होगी, तो tableView:cellForRowAtIndexPath:
इसकी प्रतियां बनाये गये हैं। मेरी धारणा यह है कि प्रतिलिपि निब पढ़ने से तेज होगी।
यहाँ है कि मैं क्या निब, जो मैं (के बाद और retain
) viewDidLoad:
से फोन
-(id)loadFromNamed:(NSString*)name {
NSArray *objectsInNib = [[NSBundle mainBundle] loadNibNamed:name
owner:self
options:nil];
assert(objectsInNib.count == 1);
return [objectsInNib objectAtIndex:0];
}
सभी अब तक अच्छा है लोड करने के लिए उपयोग करते हैं। लेकिन सवाल यह है कि: मैं इसे और अधिक कैसे कॉपी करूं? क्या यह भी संभव है?
मैंने [_cachedObject copy]
और [_cachedObject mutableCopy]
की कोशिश की लेकिन UITableViewCell
या तो प्रतिलिपि प्रोटोकॉल का समर्थन नहीं करता है।
यदि मुझे करना है, तो मैं उन्हें गति को अनदेखा करने के लिए कह सकता हूं जब तक कि मैं पूरी तरह से निब को हटाने के लिए तैयार नहीं हूं, लेकिन अगर यहां कम लटकते फल हैं तो मैं इसे थोड़ा तेज कर दूंगा।
कोई विचार?
धन्यवाद। मैं 'dequeueReusableCellWithIdentifier' के बारे में भूल गया था। अब मैं इसका उपयोग कर रहा हूं, लेकिन यह अभी भी धीमा है जितना मैं चाहता हूं। इससे पता चलता है कि बाधा ड्राइंग में है, जिसे तब तक इंतजार करना पड़ेगा जब तक कि मेरे पास अन्य फास्ट टेबल चाल लागू करने का समय न हो। लेकिन अब मुझे पता है कि क्या हो रहा है! –
वैसे आपका दृष्टिकोण भी धीमा हो गया होगा क्योंकि ऑब्जेक्ट्स का पुन: उपयोग करना ऑब्जेक्ट क्लोनिंग से कहीं अधिक तेज़ है। मैं खुशी से मदद कर सकता है। –
धीमे चलने वाले कुछ निश्चित रूप से देखने के लिए डिवाइस पर प्रोफाइलिंग करने का प्रयास करें। कुछ लोग कहते हैं कि यह चाल प्रति सेल केवल एक दृश्य का उपयोग करना है और अपनी सभी ड्राइंग करना है। –