Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 单元格中的获取图像(PFFile)正在阻止滚动_Ios_Uitableview_Parse Platform - Fatal编程技术网

Ios 单元格中的获取图像(PFFile)正在阻止滚动

Ios 单元格中的获取图像(PFFile)正在阻止滚动,ios,uitableview,parse-platform,Ios,Uitableview,Parse Platform,我有一个与Parse连接的应用程序,在显示带有UIImageView的自定义单元格的表视图时遇到问题。第一次尝试下载照片时,UI停止响应约1-2秒 问题似乎出在UIImage*image=[UIImage imageWithData:data];它不在主队列上,但仍然阻塞UI 怎么了 我使用的代码是: -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexP

我有一个与Parse连接的应用程序,在显示带有UIImageView的自定义单元格的表视图时遇到问题。第一次尝试下载照片时,UI停止响应约1-2秒

问题似乎出在UIImage*image=[UIImage imageWithData:data];它不在主队列上,但仍然阻塞UI

怎么了

我使用的代码是:

-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

        MyEvent *currentEvent = self.tableViewElements[indexPath.section][indexPath.row]; //class that stores event details without UIImages. UIImages are stored in a NSMutableDictionary

        NSDate *currentDate = currentEvent.dateStart;
        NSCalendar* calendar = [NSCalendar currentCalendar];
        NSDateComponents* components = [calendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit fromDate:currentDate]; 

InvitationTableViewCell *cell = [tableView       dequeueReusableCellWithIdentifier:@"InvitationTableViewCell"];

        cell.eventImageView.tag = indexPath.row;

        cell.eventImageView.image = nil;

        cell.eventNameLabel.text = currentEvent.name;
        cell.eventDayLabel.text = [NSString stringWithFormat:@"%d", [components day]];
        cell.eventMonthLabel.text = monthsNameArray[[components month] -1];

        if ([[AppModel sharedModel].myEventsImagesDictionary objectForKey:currentEvent.eventId])
        {
            UIImage *image = [[AppModel sharedModel].myEventsImagesDictionary objectForKey:currentEvent.eventId];
            cell.eventImageView.image = image;
        }
        else
            if (currentEvent.pictureFile)
            {
                dispatch_queue_t downloadQueue = dispatch_queue_create("Image Downloader", NULL);

                dispatch_async(downloadQueue, ^{
                    //currentEvent.pictureFile is a PFFile
                    [currentEvent.pictureFile getDataInBackgroundWithBlock:^(NSData *data, NSError *error) {
                        if (!error) {
                            if (cell.eventImageView.tag == indexPath.row)
                            {
                                UIImage *image = [UIImage imageWithData: data];
                                UIImage *croppedImage = [Utility cropImage:image toFitInSize:CGSizeMake(320.0, 90.0)];
                                image = nil;
                                [[AppModel sharedModel].myEventsImagesDictionary setObject:croppedImage forKey: currentEvent.eventId];
                                dispatch_async(dispatch_get_main_queue(), ^{
                                    if (croppedImage)
                                    {
                                        cell.eventImageView.image = croppedImage;
                                    }
                                });
                            }
                        }
                    }];
                });
            }
        return cell;
}

请检查这个。我的图片文件在Parse.com上,我没有链接到它们的url。