如何创建 UIImage 数组

2023-12-10

我正在从 Parse 数据库存储图像,如下所示:

PFFile *firstImageFile = self.product[@"firstThumbnailFile"];
[firstImageFile getDataInBackgroundWithBlock:^(NSData *imageData, NSError *error) {
    if (!error) {
        self.firstImage = [UIImage imageWithData:imageData];
    }
}];

我想将图像保存为数组以在滚动视图中显示它们。

如果我做这样的事情,它会起作用:

self.galleryImages = [NSArray arrayWithObjects: [UIImage imageNamed:@"s2.jpg"], [UIImage imageNamed:@"s1.jpg"], nil];

但如果我尝试使用 UIImage 本身,则不会出现图像。

self.galleryImages = [NSArray arrayWithObjects: self.firstImage, self.secondImage, nil];

有什么帮助吗?谢谢。


这是一个常见问题的形式:如何执行许多异步操作(没有深度嵌套完成块)并知道它们何时完成。我使用的方法是将操作的参数视为待办事项列表,并构建一个递归处理该列表的方法......

- (void)loadPFFiles:(NSArray *)array filling:(NSMutableDictonary *)results completion:(void (^)(BOOL))completion {
    NSInteger count = array.count;
    // degenerate case is an empty array which means we're done
    if (!count) return completion(YES);

    // otherwise, do the first operation on the to do list, then do the remainder
    PFFile *file = array[0];
    NSArray *remainder = [array subarrayWithRange:NSMakeRange(0, count-1)];

    [file getDataInBackgroundWithBlock:^(NSData *imageData, NSError *error) {
        if (!error) {
            UIImage *image = [UIImage imageWithData:imageData];
            results[file.name] = image;
            [self loadPFFiles:remainder filling:results completion:completion];
        } else {
            completion(NO);
        }
    }];
}

像这样称呼它(稍微猜测一下你的模型):

NSArray *pfFiles = @[ self.product[@"firstThumbnailFile"], self.product[@"secondThumbnailFile"] ];
NSMutableDictionary *result = [@{} mutableCopy];

[self loadPFFiles:pfFiles filling:result completion:^(BOOL success) {
    if (success) {
        // result will be an dictionary of the loaded images
        // indexed by the file names
    }
}];
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何创建 UIImage 数组 的相关文章

随机推荐

  • AADSTS50013:断言签名验证失败。 [原因 - 未找到密钥。,客户端使用的密钥指纹:'xxxx'

    我有三个应用程序参与 AzureAD OBO 流程 Angular FrontEnd gt 向 AzureAD 注册为 OIDC 应用程序 ASP NET Core Web API gt 向 AzureAD 注册为 SAML 应用程序 NA
  • 将 ggplot 对象转换为plotly 对象会创建与刻度值重叠的轴标题

    我在这个问题中描述了同样的问题 R ggplot和plotly轴边距不会改变 但是当我实施该解决方案时 出现以下错误 警告 忽略未知的美学 文本 我们建议您使用 ggplot2 的开发版本和 ggplotly 安装它 devtools in
  • 是否可以通过 API 创建新的 Firebase 项目?

    是否可以通过 API 或 Google Firebase 上的其他非交互式方法创建新的托管项目 我已经尝试过使用令牌的 Firebase 工具 但它说只能在 Firebase 控制台上创建新项目 一些背景 我的项目允许用户在线创建静态网站
  • 使用javascript获取浏览器下载路径

    我在网上搜索了很多答案 但一无所获 有没有办法通过Javascript获取浏览器的下载路径 我不想自己设置路径 我只想知道我的文件去哪里下载后由用户 这是不可能的 纯浏览器 JavaScript 无法获取有关用户文件系统的信息 默认下载路径
  • 记录太大 MS Access 运行时错误

    我在 MS Access 中的一个应用程序有一个异常大的表 它严重违反了一些规范化规则 但对于这个小型应用程序来说还不错 它有大约 100 个字段 列 我已阅读限制规范在这里但看不出我在哪里违反了这些 大多数字段都是文本字段 范围从几个单词
  • 防止注释显示在图形区域之外

    我使用以下代码创建带有注释的散点图 import numpy as np import matplotlib pyplot as plt np random seed 12 plt scatter np random random 10 n
  • PHP Datetime 无法转换负 ISO8601 日期

    用 DateTime 转换负日期让我错误 测试代码 var dump DateTime createFromFormat DateTime ISO8601 0001 11 30T00 00 00 0100 Result boolean fa
  • 使用 EF Core 5 查询 Postgres Json 字段

    我有下表定义 Table MyTable public class MyTable BaseEntity Required public string A get set Required Column TypeName json publ
  • 如何在通用应用程序中禁用任务并行库的 ETW EventSource?

    任务并行库使用Windows 事件跟踪 ETW 用于记录 显然 在 Windows Phone 或 Windows Store NET Runtime 下出现的 TPL 或 ETW 中存在与日志记录相关的错误 原问题已描述here 可能的解
  • Codeigniter 批量更新复选框

    我有这样的情况 我想更新一些输入为复选框的数据 我尝试了下面的代码 数据已保存在数据库中 但数据保存在另一行中 例如 我为 BirdA 检查了红色 黄色和灰色 同时为 BirdD 检查了深色和蓝色 在数据库中 BirdA 的颜色已正确保存
  • Rails 3 has_many 关系中nested_attributes 的 I18n 标签翻译

    使用 Rails 3 0 3 Ruby 1 9 2 关系如下 class Person lt ActiveRecord Base has many contact methods accepts nested attributes for
  • 限制listview的行数

    我正在开发一个需要通过蓝牙与其他设备配对的应用程序 我无法以正确的方式显示配对设备列表 我还查看了 android api 蓝牙聊天 中的示例 但我遇到了同样的问题 配对设备列表太大 然后隐藏了列表底部的搜索按钮 我的 xml 代码与示例非
  • 如何使用 Ajax 调用 PHP 函数?

    我有一个返回数组的 PHP 函数 function lire id ret array sSQL SELECT FROM produit WHERE prod code id LIMIT 1 this gt db gt query sSQL
  • 使用 tablesorter 插件排序时间 hh:mm:ss

    我正在使用 tablesorter 插件 并且有一列以 hh mm ss 格式排序 排序器 时间 不起作用 有没有办法对该列进行排序 谢谢 我已经尝试过这样的操作 但它没有对列进行排序 ts addParser id customDate
  • 正则表达式末尾大括号中的逗号分隔数字是什么意思?

    我试图理解以下正则表达式 我理解最初的部分 但我无法弄清楚 3 19 在这里做什么 A Z A Za z0 9 s 3 19 这就是称为量词的自定义重复操作 d 3 将找到正好三位数字 a c 1 3 将发现 a b 或 c 至少出现一次
  • 无法访问用户的电子邮件。变得“未定义”

    我有一个带有 Facebook 登录实现的网站 我的应用程序具有用户电子邮件的权限 即使用户使用 Facebook 登录我的应用程序 我也只能检索他 她的姓名或基本信息 不是电子邮件 所以 这是我从 Facebook 开发者网站上复制的代码
  • Android 垂直视图寻呼机,带卡片堆栈

    我正在尝试实现垂直滑动ViewPager具有一叠卡片般的外观 I am able to achieve VerticalViewPager using ViewPager PageTransformer and swapping the t
  • TSQL - 尝试将变量与 IF EXISTS() 函数一起使用以实现简单的 SP

    我们公司运行 MS Access 前端和 SQL 后端 我试图为前端提供一个存储过程 使其能够访问 T SQL 的 IF EXIST 而不是使用 DCount 来提高性能 为此 我需要能够将 SELECT 语句传递给存储过程 到目前为止 我
  • 按值对对象进行排序

    我在使用 Underscore 时遇到困难 我想按以下对象的值按字母顺序对它进行排序 并以相同的格式返回它 accommodation Accommodation bed breakfast Bed amp Breakfast carava
  • 如何创建 UIImage 数组

    我正在从 Parse 数据库存储图像 如下所示 PFFile firstImageFile self product firstThumbnailFile firstImageFile getDataInBackgroundWithBloc