什么是异步图片下载以及如何下载过多图片?

2024-02-02

我有太多图像无法从网络下载到 iPhone 中?如何使用异步图像下载构建应用程序?


最常见和最简单的方法是使用 NSURLConnection 进行异步请求。与请求集委托创建连接,当收到下一个数据块、完成加载或失败时,它开始在后台调用委托方法加载数据。当第一个对象加载时,开始下一个,依此类推。 这是稍微简化的工作代码:

- (id)init...{
//...   
    requestData = [[NSMutableData alloc] initWithCapacity:1000000];
    myImages = [[NSMutableArray alloc] initWithCapacity:100];
    myImagesAddresses = [[NSMutableArray alloc] initWithCapacity:100];
    [myImagesAddresses addObject:@"http://mysite.com/image1"];
    [myImagesAddresses addObject:@"http://mysite.com/image2"];
    //...
    [self loadNextImage];
//...   
}

-(void)loadNextImage{
    if ([myImagesAddresses count]){
        NSURL * imageURL = [NSURL URLWithString:[myImagesAddresses lastObject]];
        NSURLRequest * myRequest = [NSURLRequest requestWithURL:imageURL];
        [[NSURLConnection alloc] initWithRequest:myRequest delegate:self];
        NSLog(@"start load URL:%@", imageURL);
    }
    else{
        NSLog(@"No more images to load");
           // all images are ready to use!
    }
}

// connection delegate methods
- (void)connection:(NSURLConnection*)connection didReceiveData:(NSData*)data{
    NSLog(@"more data...");
    [requestData appendData:data];
}

- (void)connectionDidFinishLoading:(NSURLConnection *)inConnection{ 
    [myImages addObject:[UIImage imageWithData:[NSData dataWithData:requestData]]]; 
    [inConnection release];
    inConnection = nil;
    NSLog(@"Image from:%@ loaded",[myImagesAddresses lastObject]);
    [myImagesAddresses removeLastObject];
    [self loadNextImage];
}

- (void)connection:(NSURLConnection *) inConnection didFailWithError:(NSError *)error{
    [inConnection release];
    inConnection = nil;
    NSLog(@"Image from:%@ not loaded",[myImagesAddresses lastObject]);
    [myImagesAddresses removeLastObject];
    [self loadNextImage];
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

什么是异步图片下载以及如何下载过多图片? 的相关文章

  • 如何将 UILabel 的值绑定到实例变量?

    我是 mac objective c 的新手 我的问题是 我想知道是否可以将 UILabel 文本绑定到变量 而不必在值更改时手动设置文本 例如 在 Mac OS 上 当我打开新的 Finder 窗口并删除文件时 任务栏中的全局可用空间就会
  • JavaScript 中的 Promise 有什么意义?

    一个承诺是一个 可能现在可用 或将来可用 或永远不可用的值 来源 MDN 假设我有一个想要处理图片的应用程序 图片已加载 例如在算法在后台使用它之后 或某种其他类型的延迟 现在我想检查一下图片是否可以在future 通过使用承诺 而不是回调
  • 使用 CSS 的响应式图像

    我发现调整图像大小以使其具有响应能力很棘手 我正在开发一个 php 应用程序来自动将网站转换为响应式版本 我有点被图像困住了 我已经成功地为网站上的每个图像添加了一个包装类 并且可以很好地调整图像的大小 我的问题在于自然小于窗口的图像 例如
  • insertNewObjectForEntityForName:

    我使用 Xcode xcdatamodel 文件编辑器设置了一个实体 我创建了一个名为 Person 的实体 添加了一些属性 然后生成了一个 m 文件来表示它 一切都很好 现在 当我去编写一行代码时 例如 Person person Per
  • 水平 UICollectionView 单行布局

    我正在尝试使用以下命令设置简单的水平布局UICollectionView 兜圈子却没有达到预期的结果 所以任何指针或例子将不胜感激 我粘贴经常更改的代码但没有成功可能没什么意义 该图像显示两行 第一行是单个项目 尺寸正确并且在中心正确对齐
  • 如何制作 Bash 脚本来查找项目中未使用的图像?

    如何制作一个 Bash shell 脚本 它可以识别所有 jpg gif 和 png 文件 然后识别文件夹中任何文本文件中哪些文件未通过 url href 或 src 链接 这就是我开始的 但我最终得到了与我想要的相反的结果 我不想知道引用
  • react-native - 图像需要来自 JSON 的本地路径

    你好社区 我正在react native中开发一个测试应用程序 并尝试从本地存储位置获取图像 我实际在做什么 我将图像直接链接源提供给 var 并在渲染函数中调用此方法 react 0 14 8 react native 0 23 1 np
  • 如何测量我的网站客户端的图像下载时间?

    在 Img 标签中 我们知道图像有一个 OnLoad 事件 该事件在图像完成加载时触发 但是我们能在图像开始下载时得到准确的测量结果吗 我正在尝试测量网站的页面加载时间 因此如果可能的话 了解加载图像需要多长时间将成为我分析的一部分 我想以
  • 未捕获 Func<> 的异常(异步)

    我有以下代码 为了进行此重现而进行了简化 显然 catch 异常块将包含更多逻辑 我有以下代码 void Main var result ExecuteAction async gt Will contain real async code
  • 在 Objective-C 中的 Swift 类上调用 NSStringFromClass 返回模块损坏的名称

    我知道这个问题 https stackoverflow com questions 24107658 get a user readable version of the class name in swift in objc nsstri
  • 无法将项目添加到 NSMutableArray ivar

    我的目标是将字符串添加到数组中 并在我调用的方法中执行此操作 在这个方法中 我在数组中得到一个空值 但不知道为什么 我在课程开始时有这样的内容 NSMutableArray listOfEvents 以及我在每个事件上调用的方法 void
  • UITabBarController 为 TabBar 的每个 ViewController 提供不同的 Storyboard 文件

    我的团队正在开发一个具有 UITabBarController 的应用程序 我们正在使用 Storyboard 来开发界面和流程 由于我们是一个团队 所以我们不能将所有流程放在一个故事板中 因为这会导致与 SVN 同步出现问题 所以 解决方
  • 节拍匹配算法

    我最近开始尝试创建一个移动应用程序 iOS Android 它将自动击败比赛 http en wikipedia org wiki Beatmatching http en wikipedia org wiki Beatmatching 两
  • 如何将图像转换为纹身? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我后来正在使用纹身应用程序 因为我需
  • 如何在 Objective C 中使用 swift 文件

    我想在 Objective C 代码中使用我的 Swift 文件 我找到了不同的链接 说明了如何操作 我的项目名称是 测试项目 我将 import Test Project Swift h 导入到我的 m 文件中 以在 Objective
  • 使用 PDFBox 在 PDF 上绘制矢量图像

    我想使用 Apache PDFBox 在 PDF 上绘制矢量图像 这是我用来绘制常规图像的代码 PDPage page PDPage document getDocumentCatalog getAllPages get 1 PDPageC
  • AUGraphInitialize添加kAudioUnitSubType_Reverb2到AUGraph时出现错误代码-10868

    我正在尝试添加 AudioUnit 类型kAudioUnitSubType Reverb2 to an AUGraph我得到了 10868 kAudioUnitErr FormatNotSupported 支持的错误AUGraphIniti
  • UITableViewCell 上的自动布局问题

    我在使用自动布局时遇到问题xcode 5项目 我在内部使用带有导航控制器的普通视图控制器 我有一个MKMapView在上半部分和一个UITableView在下半部分 我在用storyboards 并配置了原型UITableViewCell
  • c# WebClient DownloadProgresschanged TotalBytesToReceive = -1

    我浏览了一下网络 没有看到其他人遇到这个问题 我正在使用使用 DownloadFileAsync 的 Web 客户端 当事件处理程序 DownloadProgressChanged 被调用时 TotalBytesToReceive 来自 D
  • iOS UIView子类,将透明文本绘制到背景

    我想将文本绘制到 UIView 上的子类上 以便文本从形状中切出 并且视图后面的背景显示出来 就像在 OSX Mavericks 徽标中找到的那样here http www n3rdabl3 co uk wp content uploads

随机推荐

  • 为本机 iOS 应用程序创建 Jitsi Meet 框架并集成到 Xcode 项目中

    我已经从 Jitsi meet 网站和 git repo 检查了详细信息 以在本机应用程序中实现它 执行构建命令后 我无法在提到的位置找到框架 我也无法识别符号位置 如建议的那样 如何获取需要包含在本机应用程序中的框架 以使 jitsi m
  • 带声音的图像按钮不起作用

    我在android studio中制作了一个程序 其中有10个图像按钮 每个图像按钮单击时都会产生声音 但是 当我在模拟器上运行它们时 只有前 7 个图像按钮会发出声音 不在乎我单击的按钮的顺序 我对此很陌生 请帮助我 这是我的代码 pub
  • 如何在 ASP.NET 中找到当前页面的(文件)名称?

    如何在后面的代码中找到 default aspx 当前页面或Web控件的名称 我想编写一个使用这个名称的超类 你的意思是你想找到当前执行的对象的原始文件名 即 从您想要检索的控件 MyControl 内部MyControlOnDisk as
  • pythonunittestassertCountEqual使用'is'而不是'=='?

    我正在尝试使用 python 的unittest库来编写一些单元测试 我有一个返回对象的无序列表的函数 我想验证对象是否相同 并且我正在尝试使用断言计数等于 http docs python org py3k library unittes
  • 如何通过客户端 Java 代码获取 Google Web Toolkit 中的当前 URL?

    我试图读取 URL 的查询参数 https stackoverflow com questions 4514940 reading request parameters in google app engine with java在客户端
  • 处理 NULL 的最佳方法

    在我的函数顶部 我正在尝试用最好的方法来处理 C 中进入我的程序的 null 值 检查和处理空值的最佳方法是什么 为什么 我已经添加了我现在正在使用的完整代码 Resharper 告诉我使用选项 1 通常我会按照它所说的去做 因为我明白为什
  • 使用 JS 强制页面缩放至 100%

    我在 Canvas 中创建了一个小游戏 但遇到了问题 某些将默认缩放设置为 100 以外的用户无法看到整个游戏页面 我尝试过使用这个CSS zoom 100 这个 HTML 还有这个JS style zoom 75 有什么想法如何以编程方式
  • React Redux:获取 Props 并更新状态

    我是第一次尝试 React Redux JS 我对在组件中设置状态与让 redux 更新它有点困惑 我想单击一个按钮将 lightOn 设置为 true 并显示更新的 this props lightOn 值 我错过了一些基本的东西 但不确
  • JsonConverter如何反序列化为通用对象

    我通过 webapi 发送这个结构 DataContract public class PacketData public enum Opcodes Hello 0x00 Close 0x01 Serial 0x02 GPIO 0x04 D
  • 模型类未声明显式 app_label 并且不在 INSTALLED_APPS 中的应用程序中

    我正在使用 sphinx 并尝试为我的 Django 项目生成文档 我决定首先尝试记录模型 因此在我的 rst 文件中我这样做了 wdland models automodule wdland models members undoc me
  • 如何检测innerHTML何时完成

    我已经做了很多寻找这个问题的解决方案 但到目前为止还没有找到一个可以跨浏览器工作的解决方案 我需要的是一个原始的javascript函数 一旦innerHTML成功插入到dom中 它将接受一个元素并运行回调 e g var element
  • 对 CUBEVALUE 中的多个度量求和

    我尝试了多个不同的函数 CUBESET CUBEVALUE 等 但我似乎无法找到一种方法来在同一公式中对多个度量求和 关于如何完成这项工作有什么建议吗 我进行了大量搜索但找不到方法 想法如下 但这不起作用 CUBEVALUE Connect
  • org.webrtc.RTCPeerConnection 无法将视频发布到服务器

    我使用 webrtc 在会议中发送和获取视频 子主视频正常显示 但问题是视频没有发布到服务器 我检查方法 setlocalDescription 没有返回错误 这是我的sdp 有人可以帮忙吗 我搜索了很多解决方案 但我仍然不知道我的问题 我
  • Oracle PLSQL IN() 子句中的数组

    我将字符串数组 plcListchar 传递给存储过程 我想在 IN 子句中使用这个字符串数组 我不能在 IN 子句中直接使用 plcListchar 让我展示一下如何在 JAVA 中创建 plcListchar 字符串数组 String
  • github 操作workflow_run.conclusion 随机失败的任何解决方法吗?

    我在用着workflow run conclusion按照以下方式发送工作流程通知github 文档 https docs github com en actions using workflows events that trigger
  • Python 与电报机器人中的关键字“from”冲突

    我想使用 python telegram bot 在 Python 脚本中打印用户信息 参考this https core telegram org bots api user page 但是当我打字时 print update messa
  • 如何在 Azure 表存储中存储任意键值对?

    背景 我从客户端收到 CSV 数据文件 其中包含大量我不需要的数据和少量我需要的数据 将来我可能需要访问这些数据 虽然我正在存档原始数据文件 但我希望有一些更容易查询的东西 我希望找到一个并不意味着数据文件保持相同格式的解决方案 即客户端可
  • 在 XNA 4.0 中绘制具有多个侧面的纹理立方体

    几个小时以来我一直在努力解决这个问题 我想做的是画一个立方体 每一面都有不同的纹理 或者更具体地说 我希望能够指定每面我想要的任何纹理 我用了这个例子here http www switchonthecode com tutorials c
  • GWT:如何更改 GWT Celltable 中的行颜色

    我在 GWT 中有一个单元格表 我可以通过此更改特定列的颜色 celltable addColumnStyleName 4 bluetext 但我怎样才能改变例如第3行的颜色 Thanks 您必须提供一个RowStyles返回每行的 css
  • 什么是异步图片下载以及如何下载过多图片?

    我有太多图像无法从网络下载到 iPhone 中 如何使用异步图像下载构建应用程序 最常见和最简单的方法是使用 NSURLConnection 进行异步请求 与请求集委托创建连接 当收到下一个数据块 完成加载或失败时 它开始在后台调用委托方法