This is my method with two parameters: imgArray
and andDurationArray
.
I want to call this same method with same two parameters, in my else
section, by performSelector
. How can I call it? Thanks a lot in advance.
-(void) imageAnimationWithImage:(NSArray *) imgArray andDurationArray:(NSArray *) durationArr
{
if (count == imgarray.count)
{
count = 0;
[self imageAnimationWithImage:imgarray andDurationArray:durationArr];
}
else
{
emoImageView.image = [UIImage imageNamed:[imgarray objectAtIndex:count]];
[self performSelector:@selector(imageAnimationWithImage:andDurationArray:) withObject:imgarray withObject:durationArr afterDelay:[[durationArr objectAtIndex:count] doubleValue]];
count++;
}
}
Use dispatch_after
. It's much easier:
double delay = [[durationArr objectAtIndex:count] doubleValue];
dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delay * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
[self imageAnimationWithImage:imgarray andDurationArray:durationArr];
});