测试已测试 | ✗ |
语言语言 | Obj-CObjective C |
许可证 | 自定义 |
发布上次发布 | 2016年7月 |
由Michael Markowski、Claus Weymann、Mark Zeller维护。
依赖项 | |
ZipArchive | ~> 1.3.0 |
VersionIntrospection | ~> 0.4.0 |
0.9.10
develop
AFCache是用于iPhone/iPad和OSX的HTTP磁盘缓存,可以作为静态库或框架链接。该缓存最初编写,因为iOS中的NSURLCache忽略了NSURLCacheStorageAllowed,而是将其视为NSURLCacheStorageAllowedInMemoryOnly,这对于持续缓存来说几乎是没用的。
构建一个完全符合RFC2616的缓存,而不是简单地基于时间进行缓存
提供离线模式,以便在没有网络时从缓存中提供内容
提供打包机制,预先填充缓存以访问离线内容
允许通过覆盖NSURLCache来缓存UIWebView资源
这是一个好问题 ;) 文档总是不足,但您可以先查看FAQ。在AFCache-iOS Xcode项目中,您可以找到使用AFCache的不同方式的示例控制器。
查看CHANGES以获取发行说明。
API已从主分支更改为bip分支,但迁移应该比较容易。旧的master分支已移至“pre0.7”分支,但我强烈建议您迁移到新的主分支。
AFCache被用于多个iPhone应用的不同版本。它在不断进化,因此被认为是测试版。
已完成目前我正在进行一些重大的更改和添加,比如打包工具,并在两个大型实际项目中(iPhone和OSX应用)进行测试。已完成在将这些项目成功整合AFCache之后,我将扩展演示和一些文档,使其成为一个对公众有用的库。测试用例(仍然)没有很好地维护。
过时
日志记录是通过AFLog宏实现的,这个宏可以是
EngineRoom的日志点,这是一种高级日志框架,它可以在运行时动态地操作日志,来自EngineRoom文档:基本思想是将日志消息作为第一类公民。日志点是可以在运行时操作的数据结构(例如启用/禁用)。这是通过在单独的链接器段中创建静态结构来实现的。
您可以在此处检查EngineRoom(https://github.com/bkrpub/EngineRoom),并通过定义USE_ENGINEROOM并将EngineRoom-OSX.xcodeproj添加到您的项目中,将AFCache链接到它上。
打包文件处理策略尚不完全明确。目前,提取后直接删除了打包文件。有些人可能想要跟踪哪些打包文件已经提取过。这也需要与文件位移策略兼容。
对于清理方法仍然不满意。这里需要一个聪明的位移算法。
用于在磁盘上确定缓存文件大小的代码被注释掉了,因为它有bug。不要使用这个版本进行生产。
同步请求测试得不好
manifest.afcache文件包含存档中每个文件的条目。一个条目看起来像这样
URL ; last-modified ; expires\n ; mimetype
注意分隔符,它是" ; "(空格分号空格)格式。MIME类型是可选的。
示例
http://upload.wikimedia.org/wikipedia/commons/6/63/Wikipedia-logo.png ; Sat, 27 Mar 2004 18:43:30 GMT+00:00 ; Thu, 29 Jul 2010 14:17:20 GMT+00:00 ; text/html
URL必须正确编码,并且不得包含末尾的hash或参数。
由于文件路径是根据URL计算的,因此不需要将其包含在清单文件中。日期必须按照rfc1123格式化。例如:"Wed, 01 Mar 2006 12:00:00 GMT"。
zip文件结构类似于URL
hostname/path/to/file.suffix zip文件包含打包器收集的所有文件和清单文件。可选地,它还包括用户数据。
编译时需要链接到SystemConfiguration.framework和libz.dylib。由于AFCache使用了Objective-C Category,您需要将以下选项添加到链接器(目标/您的项目,信息,构建设置:"其他链接器标志")-ObjC -all_load
更多信息请参阅:http://developer.apple.com/mac/library/qa/qa2006/qa1490.html
单元测试目前依赖于现有的HTTP服务器,例如Apache。提供了一个简单的php脚本来正确地回答请求。将脚本放在您的htdocs目录下,并在LogicTests.m中配置URL,例如:
static NSString *kBaseURL = @"http://127.0.0.1/~mic/afcache/";
更多信息请参阅CHANGES。
我经常使用Charles作为HTTP调试代理,它非常适合查找不一致性。 http://www.charlesproxy.com/
版权2008,2009,2010,2011,2012,2013艺术品 - 精细软件开发
作者:Michael Markowski ([email protected]) Lars Blumberg Sebastian Grimme Claus Weymann
Nico Schmidt (Savoy Software) Björn Kriews (bkr (0x40) jumper.org) Christian Menschel (post at cmenschel.de)
在Apache许可协议版本2.0(“许可证”)下许可;您不得使用此文件,除非遵守许可证。您可以在https://apache.ac.cn/licenses/LICENSE-2.0获得许可证的副本。
除非适用法律要求或书面同意,否则在许可证下分发的软件按“原样”基础分发,不提供任何明示或暗示的保证或条件。有关许可证的具体语言管辖许可和限制,请参阅许可证。