Skeets 0.9.5

Skeets 0.9.5

测试已测试
Lang语言 SwiftSwift
许可证 Apache 2
发布上次发布2015年5月
SPM支持 SPM

Dalton Cherry 维护。



Skeets 0.9.5

skeets

Skeets 是一个网络图像库,使用 Swift 通过 HTTP 获取、缓存和显示图像。它是基于 SwiftHTTP 构建的。

功能

  • 多层缓存。内存和磁盘缓存。
  • 非阻塞 IO。所有 HTTP 和磁盘 IO 都在后台进行,归功于 GCD。
  • 简单的方法加载远程图像。
  • 健壮、快速和可定制的缓存。
  • 简单的代码库,只有几百行代码。
  • 处理重复的图像请求,所以对于多个查询只发送一个请求

更多信息请看:[Vluxe](http://vluxe.io/skeets.html)

示例

首先,导入框架。有关如何将框架添加到项目中,请参阅安装说明。

import Skeets

导入后,您就可以开始请求图像。

//create a imageView
let imageView = UIImageView(frame: CGRectMake(0, 60, 200, 200))
self.view.addSubview(imageView)

//set the cache directory. Only have to do this once since `sharedManager` is a singleton
let paths = NSSearchPathForDirectoriesInDomains(.CachesDirectory, .UserDomainMask, true)
ImageManager.sharedManager.cache.diskDirectory = "\(paths[0])/ImageCache"

//for OSX
//let paths = NSSearchPathForDirectoriesInDomains(.CachesDirectory, .UserDomainMask, true)
//ImageManager.sharedManager.cache.diskDirectory = "\(paths[0])/\(NSBundle.mainBundle().bundleIdentifier!)/ImageCache"

ImageManager.sharedManager.cache.cleanDisk()

//fetch the image
ImageManager.fetch("http://vluxe.io/assets/images/logo.png",
    progress: { (status: Double) in
        println("updating some UI for this: \(status)") //useful if you have some kind of progress dialog as the image loads
    },success: { (data: NSData) in
        println("got an image!")
        imageView.image = UIImage(data: data) //set the image data
    }, failure: { (error: NSError) in
        println("failed to get an image: \(error)")
})

取消请求

当需要时,可以取消获取请求。这仅会导致闭包不会调用。

ImageManager.cancel("http://vluxe.io/assets/images/logo.png")

自定义缓存

Skeets 还支持自定义缓存和协议。您可以通过实现 CacheProtocol 来实现自己的自定义缓存。还有一个功能丰富的默认缓存,提供了一些定制选项。

let c = ImageManager.sharedManager.cache as? ImageCache
if let cache = c {
    cache.diskAge = 60 * 60 //360 seconds or 1 hour (Default is 1 day).
    cache.imageCount = 10 //only 10 images will be stored in memory (Default is 50).
}

还可以手动清理缓存(例如,收到内存警告)。

ImageManager.sharedManager.cache.clearCache()

磁盘也可以清理以删除可能的过时条目。

ImageManager.sharedManager.cache.cleanDisk()

要求

Skeets 至少需要 iOS 8/OSX 10.10 或更高版本。

Skeets 依赖 SwiftHTTP。在使用 Skeets 之前,请确保导入该框架。

如果您遇到 Skeets 无法构建的问题,因为找不到 SwiftHTTP,请确保从构建下拉菜单手动选择 SwiftHTTP 框架并构建它。然后再次构建您的应用程序。这将解决SwiftHTTP找不到的问题。

安装

Rogue

首先,查看 安装文档 了解如何安装 Rogue。

要安装 Skeets,请在创建 rogue 文件所在的目录中运行以下命令。

rogue add https://github.com/daltoniam/SwiftHTTP
rogue add https://github.com/daltoniam/Skeets

接下来,打开 libs 文件夹,将 Skeets.xcodeproj 添加到您的 Xcode 项目中。完成后,在您的 "构建阶段" 中添加 Skeets.framework 到 "链接二进制库" 阶段。请确保将 libs 文件夹添加到您的 .gitignore 文件中。

其他

只需获取框架(无论是通过 git 子模块还是其他包管理器)。

Skeets.xcodeproj 添加到您的 Xcode 项目中。完成后,在您的 "构建阶段" 中添加 Skeets.framework 到 "链接二进制库" 阶段。

添加复制框架阶段

如果您在 OS X 应用程序或物理 iOS 设备上运行此代码,您需要确保将 Skeets.frameworkSkeetsOSX.framework 添加到应用程序捆绑包中。为此,在 Xcode 中,通过单击蓝色的项目图标,然后在侧边栏的 "目标" 下选择应用程序目标,导航到目标配置窗口。在该窗口顶部的选项卡栏中,打开 "构建阶段" 面板。展开 "链接二进制库" 组,并添加 Skeets.frameworkSkeetsOSX.framework,具体取决于您是构建 iOS 应用还是 OS X 应用。单击面板左上角的加号按钮,选择 "新复制文件阶段"。将此新阶段重命名为 "复制框架",设置 "目标" 为 "框架",并分别添加 Skeets.frameworkSkeetsOSX.framework

待办事项

  • [ ] 完成文档
  • [ ] 添加单元测试

许可

Skeets 在 Apache v2 许可下授权。

联系

Dalton Cherry