objective c - Load image from url in iPhone, only if small -
मैं एक छवि लोड करने के लिए initWithContentsOfURL का NSData का उपयोग कर रहा हूं एक यूआरएल हालांकि, मुझे छवि का आकार पहले से नहीं पता है, और अगर मैं किसी निश्चित आकार से अधिक प्रतिक्रिया देता है तो रोकने या विफल करने के लिए कनेक्शन की तरह होता है।
ऐसा करने का एक तरीका आईफ़ोन 3.0?
पहले से धन्यवाद।
आप कर सकते हैं यह सीधे एनएसडीटा के माध्यम से नहीं करता है, हालांकि NSURL कनेक्शन / एसिंक्रोनस छवि को लोड करके और कनेक्शन: didreive डेटा: का उपयोग करके आपको यह प्राप्त करने के लिए कितना डेटा प्राप्त होता है, इसका समर्थन करेगा। यदि आप अपनी सीमा से अधिक हो जाते हैं तो अनुरोध को रोकने के लिए NSURL कनेक्शन से रद्द करें संदेश भेजें।
सरल उदाहरण: (प्राप्तडेटा को शीर्ष पर एनएमएसूटबलडेटा के रूप में परिभाषित किया गया है)
< Pre> @implementation TestConnection - (आईडी) init {[self loadURL: [NSURL URLWithString: @ "http://stackoverflow.com/content/img/so/logo.png"]]; स्वयं वापसी; } - (BOOL) loadURL: (एनएसURL *) inURL {NSURLRequest * अनुरोध = [NSURLRequest अनुरोध के साथउठरर्ल: inURL]; NSURLConnection * conn = [NSURL कनेक्शन कनेक्शन के साथ अनुरोध: अनुरोध प्रतिनिधि: स्वयं]; यदि (conn) {प्राप्तडेटा = [[NSMutableData डेटा] बनाए रखा गया है); } और {वापसी गलत; } वापसी TRUE; } - (शून्य) कनेक्शन: (NSURLConnection *) conn ने किया रीसिव रिस्पॉन्स: (एनएसरलआरआरस्पॉन्स *) प्रतिक्रिया [[प्राप्तडेटा सेटलांबी: 0]; } - (शून्य) कनेक्शन: (NSURLConnection *) conn didReceiveData: (NSData *) डेटा {[receivedData appendData: डेटा]; यदि ([प्राप्त तिथि]> 5120) {// 5KB [conn रद्द करें]; }} - (शून्य) connectionDidFinish लोड हो रहा है: (NSURLConnection *) conn {// डेटा एनएसएलॉग के साथ कुछ करें (@ "सफल हुआ! प्राप्त डेटा के% d बाइट्स", [प्राप्तडेटा लंबाई]); [प्राप्तडेटा रिलीज़]; } @end
Comments
Post a Comment