मैं अपने अनुप्रयोग में एक UITableView
जिसमें मैं NSDocumentDirectory
से कई छवियों को लोड कर सकते है। यह काम करता है, लेकिन जब ऊपर और नीचे स्क्रॉल और, अनुप्रयोग एक सा है, सबसे अधिक है क्योंकि छवियों मुख्य थ्रेड में परोसा जा रहा है, प्रभावी रूप से स्क्रॉल जब तक यह भरा हुआ है से tableView अवरुद्ध होने की संभावना को फ्रीज करने लगता है। मेरी समस्या यह है कि मुझे नहीं पता कि बाद में उन्हें लोड करना, एक "आलसी लोड" सुविधा, स्क्रॉल करते समय।लेज़ी लोड छवियों?
यह कोड स्निपेट अब छवियों को लोड करने के लिए प्रयोग किया जाता है:
imagesPath = [NSString stringWithFormat:@"%@/images/", [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]];
if ([fileManager fileExistsAtPath:[imagesPath stringByAppendingPathComponent:[NSString stringWithFormat:@"/%d.png", rowID]]]) {
UIImage *image = [[UIImage alloc] initWithContentsOfFile:[imagesPath stringByAppendingPathComponent:[NSString stringWithFormat:@"/%d.png", rowID]]];
// If image contains anything, set cellImage to image. If image is empty, use default, noimage.png.
if (image != nil){
// If image != nil, set cellImage to that image
cell.cellImage.image = image;
}
[image release];
}
सबसे अच्छा तरीका है करने के लिए "आलसी लोड" प्रत्येक कोशिका में छवियों स्क्रॉल में चल से बचने के लिए क्या है?
मैं एक छवि डाउनलोड करने के लिए कोशिश नहीं कर रहा हूँ, मैं NSDocumentDirectory से एक छवि में लोड करने के लिए कोशिश कर रहा हूँ: यह
SDWebImageManagerDelegate
प्रोटोकॉल लागू करता है। – Emilडाउनलोड करना NSURL द्वारा समर्थित किसी भी संसाधन तक पहुंचने के रूप में समझा जाना चाहिए। NSRL का उपयोग कई प्रोटोकॉल के लिए किया जा सकता है: http, FTP या फ़ाइल। आपको NSRL पर पथ बदलें और अपनी स्थानीय फ़ाइल "डाउनलोड करें"। –
मैं कोशिश कर रहा हूं, लेकिन यह काम नहीं करता है! 'फ़ाइल: // var/मोबाइल/आवेदन/RANDOMIDENTIFIER/दस्तावेज़/छवियों/10.png' NSURL एक स्ट्रिंग से भरी हुई है। – Emil