I've written two ways to async load pictures inside my UITableView cell. In both cases the image will load fine but when I'll scroll the table the images will change a few times until the scroll will end and the image will go back to the right image. I have no idea why this is happening.
#define kBgQueue dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0)-(void)viewDidLoad {[super viewDidLoad]; dispatch_async(kBgQueue,^{NSData* data =[NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://myurl.com/getMovies.php"]];[self performSelectorOnMainThread:@selector(fetchedData:) withObject:data waitUntilDone:YES];});}-(void)fetchedData:(NSData*)data {NSError* error; myJson =[NSJSONSerializationJSONObjectWithData:data options:kNilOptions error:&error];[_myTableView reloadData];}-(NSInteger)numberOfSectionsInTableView:(UITableView*)tableView {// Return the number of sections.return1;}-(NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section{// Return the number of rows in the section.// Usually the number of items in your array (the one that holds your list)NSLog(@"myJson count: %d",[myJson count]);return[myJson count];}-(UITableViewCell*)tableView:(UITableView*)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath{ myCell *cell =[tableView dequeueReusableCellWithIdentifier:@"cell"];if(cell == nil){ cell =[[myCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"cell"];} dispatch_async(kBgQueue,^{NSData*imgData =[NSData dataWithContentsOfURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://myurl.com/%@.jpg",[[