NSString *pictureUrl = [[[oneUserDict objectForKey:@"picture"]objectForKey:@"data"]objectForKey:@"url"];

[[AppEngine sharedEngine]imageAtURL:[NSURL URLWithString:pictureUrl] onCompletion:^(UIImage *fetchedImage, NSURL *url, BOOL isInCache)

{
  int index  = [usersArray indexOfObject:oneUserDict];
  NSString *loadName = [NSString stringWithFormat:@"%d of %d",index,[usersArray count]];
  NSLog(@"%i",usersArray.count);
  int temp=[usersArray count]-10;

  if (index!=temp)
  {

    [[LoadingIndicator currentIndicator]displayActivity:loadName];
    NSLog(@"inside loading indicator");
  }

  else
  {

   [[LoadingIndicator currentIndicator]displayCompleted:@"Done"];
     NSLog(@"finally done");
  }

    aPerson.image =  UIImagePNGRepresentation(fetchedImage);
    [appDelegate.managedObjectContext save:nil];
 }];


AppEngine是MKNetworkEngine的子类,它使用称为imageAtURL:onCompletion:的方法

我目前正在做的是从一个特定的URL中检索所有图像,并将它们存储在aPerson.image中,基本上上述代码在FOR循环中(即用于用户数)。

问题

上面的代码在完成代码块中永远不会执行,我不知道为什么,但是我已经在该代码块中放置了一个断点,但是编译器仍然不会在完成代码块中运行语句。

最佳答案

Api imageAtURL:onCompletion:已过时。请改用imageAtURL:completionHandler:errorHandler:。此外,MKNetworkKit提供了UIImageView+MKNetworkKitAdditions类别,该类别为图像下载提供了简单的API,例如setImageFromURL: placeHolderImage:

干杯!
阿玛

08-19 01:34