从 Parse.com 下载图像并将其用于 iCarousel

Posted

技术标签:

【中文标题】从 Parse.com 下载图像并将其用于 iCarousel【英文标题】:Downloading images from Parse.com and using them for iCarousel 【发布时间】:2013-05-19 17:25:51 【问题描述】:

请帮帮我!

我像这样从 Parse.com 下载图像:

self.images = [[NSMutableArray alloc] init];
PFImageView *creature = [[PFImageView alloc] init];
PFQuery *query = [PFQuery queryWithClassName:@"SubCatergory"];
[query findObjectsInBackgroundWithBlock:^(NSArray *comments, NSError *error) 

    for (PFObject *comment in comments) 

        PFFile *file = [comment objectForKey:@"imageFile"];
        creature.file = file;
        creature.frame = CGRectMake(0, 0, 100, 100);
        // creature.userInteractionEnabled =YES;
        [creature loadInBackground];

        //[self.images addObject:creature];

           [self.images addObject: creature];

    


];

将这些放入 iCarousel:

-(UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index reusingView:(UIView *)view
    

        PFImageView* img = [self.images objectAtIndex:index];
        PFImageView* imgView = [[PFImageView alloc] initWithImage:img];
        return img;


使用本地图像 iCarousel 效果很好。我设置了代表和数据源。 我的图像数组的内容是这样的:

>", "

我得到了错误:

[PFImageView 长度]:无法识别的选择器发送到实例 0xf40e9d0

【问题讨论】:

我的图像数组的内容是这样的:>", ">", 【参考方案1】:

这是一个老问题,我认为您已经发现您的代码存在问题。总之,如果你仔细看:

PFImageView* img = [self.images objectAtIndex:index];
PFImageView* imgView = [[PFImageView alloc] initWithImage:img];

当您调用initWithImage 时,您使用的是img,它实际上是一个UIImageView 派生类代替UIImage

这解释了您的崩溃。您可以安全地从您的 carousel:viewForItemAtIndex: 方法返回 [self.images objectAtIndex:index]

-(UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index reusingView:(UIView *)view 

  return [self.images objectAtIndex:index];

【讨论】:

【参考方案2】:

希望对你有帮助

self.images = [[NSMutableArray alloc] init];
PFQuery *query = [PFQuery queryWithClassName:@"SubCatergory"];
[query findObjectsInBackgroundWithBlock:^(NSArray *comments, NSError *error) 

    for (PFObject *comment in comments) 
      PFFile *post = [comment objectForKey:@"imageFile"];
      [self.images addObject:post];  
    ];


-(UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index reusingView:(UIView *)view 
          AsyncImageView *imageasy=[[AsyncImageView alloc] init];   
               [imageasy setImageURL:[NSURL URLWithString:[post url]]];
  return imageasy.image;

【讨论】:

以上是关于从 Parse.com 下载图像并将其用于 iCarousel的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Swift 2.0 在 Parse.com (REST API) 中上传图像并将其与用户关联

是否可以使用objective-c从parse.com检索数据并将其显示在网站上?

如何从网络下载图像并将其保存在本地目录中?

如何从 UIImageView 将图像上传到 Parse.com [关闭]

Swift 无法从 parse.com 检索图像

从 Parse.com 将徽标图像加载到 UIImage