我听说延迟加载技术对提高程序性能非常有帮助.我正在为iPhone开发游戏.我不确定如何在目标C中应用延迟加载.有人能告诉我这个例子吗?
提前致谢
我正在创建一个iPhone应用程序,它将从Web API中提取数据,包括电子邮件地址.我想在表格单元格中显示与每个电子邮件地址关联的图像,因此我在地址簿中搜索图像,如果电子邮件地址不在书中,则返回默认值.这很好用,但我有一些顾虑:
性能:据我所知,通过电子邮件地址(或电话号码)查找地址簿记录的食谱相当缓慢.原因是必须遍历每个地址簿记录,并且对于每个具有图像的记录,迭代所有电子邮件地址以查找匹配.当然,这对于大型地址簿来说可能是耗时的.
表格单元格:所以我想我会收集所有需要查找图像的电子邮件地址并立即找到它们.这样我只对所有地址遍历一次书.但这对表格单元格不起作用,其中每个单元格对应一个电子邮件地址.我要么显示任何细胞(可能慢)之前收集的所有图像,或者每个单元中查找每个图像的加载(更慢,因为我需要通过这本书来迭代找到一个匹配的每个电子邮件地址).
异步查找:那么我想我会批量查找它们,但异步,使用NSInvocationOperation.对于在AddressBook中找到的每个图像,我会在应用程序沙箱中保存一个缩略图.然后每个单元格可以引用此文件并显示默认值(如果它不存在(因为它不在书中或尚未找到)).如果稍后在异步查找中找到图像,则下次需要显示图像时,它会突然出现.这可能适用于图像的周期性再生(例如,当地址簿中的图像已被更改时).但是对于我的应用程序的任何给定实例,图像可能实际上不会出现一段时间.
异步表单元格查找:理想情况下,我会使用像markjnet的异步表格单元格更新来更新表格单元格,并在下载后再映像.但为了实现这一点,我必须为NSInvocationOperation显示的每个单元格分离一个作业,如果沙箱中缺少缓存的图标.但是接下来我们又回到了无效地遍历每个地址簿的整个地址簿 - 如果您刚刚下载了大量新的电子邮件地址,那么它们可能会很多.
所以我的问题是:其他人如何做到这一点?我正在摆弄Tweetie2,它看起来像是异步更新显示的表格单元格.我假设它正在为它需要的每个图像发送一个单独的HTTP请求.如果是这样,我想通过电子邮件地址搜索本地地址簿效率不高,那么这可能是最好的方法吗?只是不担心与搜索地址簿相关的性能问题?
如果是这样,将沙盒中的缩略图保存为缓存的最佳方法?如果我想创建一个新工作来更新所有缩略图,并且地址簿中的任何更改都说每天一次,那么这样做的最佳方法是什么?
你们其他人如何解决这类问题?建议将不胜感激!
我开始mac osx开发,我想在tableview中集成延迟加载我搜索但我没有找到任何示例.我试图在mac osx中实现ios延迟加载,但它不起作用.
任何机构都知道如何在NSTableview中实现延迟加载.
谢谢,日元
我是ios开发的新手 - 尝试在我的iphone项目中使用sdwebimage.我相信我已按要求完成了所有基本设置.但是当我构建时,我收到此错误:此行附近没有此类文件或目录:
#import "UIImageView+WebCache.h"
Run Code Online (Sandbox Code Playgroud)
构建一直在失败.再次,当我输入#import"UI&hit"ctrl + space"时,XCode4代码完成"解析",这意味着lib对xcode是可见的.任何指针都会非常有用.谢谢.
iphone ×3
xcode ×2
asynchronous ×1
caching ×1
image ×1
import ×1
installation ×1
macos ×1
objective-c ×1
sdwebimage ×1