मेरे विचार में मेरे पास छवि दृश्य है, छवि दृश्य के लिए डेटा यूआरएल फॉर्म आता है, छवियां लगभग 1-3 एमबी हैं। यदि उपयोगकर्ता स्वाइप करता है तो मैं अगली छवि लोड करना चाहता हूं, धीरे-धीरे स्वाइप होने पर हर चीज ठीक काम करती है, लेकिन जब मैं तेजी से स्वाइप करता हूं तो मैं पिछले ऑपरेशन को रद्द करना चाहता हूं और नए यूआरएल से शुरू करना चाहता हूं।NsoperationQueue सभी ऑपरेशंस को रद्द नहीं किया जाता है जब तक कि यह ऑपरेशन समाप्त नहीं हो जाता
पूर्व के लिए। यदि उपयोगकर्ता दूसरी और तीसरी छवियों के लिए मध्यस्थ है, तो मैं 4 बार स्वाइप करता हूं, मैं उन्हें रद्द करना चाहता हूं और 4 वें छवि
पर डाउनलोड करना चाहता हूं लेकिन अब 4 वें छवि के स्थान पर मुझे पहली दूसरी छवि 3 मिल रही है और फिर 4 वें छवि प्रकट होती है।
यहाँ मेरी नमूना कोड
- (void)handleSwipeLeft:(UISwipeGestureRecognizer *)aSwipeGestureRecognizer {
[BackgroundOperation cancelAllOperations]; // To cancel previous one
[self performSelector:@selector(LoadImage) withObject:nil afterDelay:0.1];
}
-(void)LoadImage
{
BackgroundOperation=[[NSOperationQueue alloc]init];
imgvww.image=[UIImage imageNamed:@"loader.png"]; // Place holder till download finishes
[BackgroundOperation addOperationWithBlock:^
{
UIImage *img=[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:[[self.ItemDetails objectAtIndex:0] objectForKey:@"ImageUrl"]]]]; // Getting data from URL
[[NSOperationQueue mainQueue] addOperationWithBlock:^{
imgvww.image=img; //Adding to image view after completion
}];
}];
}
धन्यवाद है।
कृपया अपने कोड ऐसी है कि अन्य लोगों को यह पढ़ सकते हैं फ़ॉर्मेट करने के लिए का प्रयास करते हैं। – jtbandes
क्या आप किसी भी छवि को लोड होने की आवश्यकता होने पर 'पृष्ठभूमि ऑपरेशन' को पुनर्निर्मित कर रहे हैं ('पृष्ठभूमिऑपरेशन = [[NSOperationQueue alloc] init] के साथ;')? –