美文网首页
swift中的沙盒目录

swift中的沙盒目录

作者: __zimu | 来源:发表于2015-12-23 21:18 被阅读1109次

前言

学习中遇到了需要拿到应用沙盒目录的需求. oc中的写法如下:

@implementation NSString (Path)
//追加文档目录
- (NSString *)appendDocumentPath {
    return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).lastObject stringByAppendingPathComponent:self.lastPathComponent];
}
//追加缓存目录
- (NSString *)appendCachePath {
    return [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).lastObject stringByAppendingPathComponent:self.lastPathComponent];
}
//追加临时目录
- (NSString *)appendTempPath {
    return [NSTemporaryDirectory() stringByAppendingPathComponent:self.lastPathComponent];
}

swift

    //文档目录
    let documentPath = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true).last! as NSString
    //缓存目录
    let cachePath = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.CachesDirectory, NSSearchPathDomainMask.UserDomainMask, true).last! as NSString
    //临时目录
    let tempPath = NSTemporaryDirectory() as NSString

正文

由于需求是根据头像的地址缓存图片, 所以要拿到头像地址中http://xxx.com/xxx.png 中最后一个 / 后面的内容作为 key 来保存
OC中使用了 self.lastPathComponent 来拿到(这里的self是一个NSString)

由于swift中字符串默认是 String 类型,而不是 NSString.所以默认没有上述方法. 解决这个问题方法有2种:

1. 全部转成 OC 字符串

path和头像的地址http://xxx.com/xxx.png全部转成NSString 然后根据 OC 的语法去做

2. 使用public func componentsSeparatedByString(separator: String) -> [String]方法来分割.

这个方法会根据你指定的分隔符,来返回一个数组, 这个数组中包含了根据分隔符分割的几部分.

let filePath = self.documentPath.stringByAppendingPathComponent(iconAddress!.componentsSeparatedByString("/").last!)

同样能解决这个问题.

干货在这

    //返回文件的沙盒目录
    func docuPath(URLString: String) -> String {
        let documentPath = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true).last! as NSString
        //app.icon!.componentsSeparatedByString("/").last!  -> 根据 "/"来拆分 得到一个数组.拿到最后一个部分
        return documentPath.stringByAppendingPathComponent(URLString.componentsSeparatedByString("/").last!)
    }

拖到你的项目里,拖进去,拖进去...

相关文章

  • swift中的沙盒目录

    前言 学习中遇到了需要拿到应用沙盒目录的需求. oc中的写法如下: swift 正文 由于需求是根据头像的地址缓存...

  • Objective-C沙盒结构

    导读: 一、什么是沙盒机制二、沙盒的特点三、沙盒的结构组成四、获取沙盒目录路径 一、什么是沙盒机制 iOS中的沙盒...

  • OC - 沙盒

    导读: 一、什么是沙盒机制 二、沙盒的特点 三、沙盒的结构组成 四、获取沙盒目录路径 一、什么是沙盒机制 iOS中...

  • tidevice 文件操作命令

    1、拉取沙盒目录文件 比如: 2、推资源到沙盒目录 3、删除沙盒目录文件

  • iOS沙盒解析及操作

    介绍 概念:每个应用拥有自己的应用沙盒,所谓的应用沙盒就是文件系统目录。 沙盒文件目录 沙盒操作 获取应用根目录 ...

  • 数据持久化存储

    沙盒 iOS程序默认情况下只能访问自己的目录,这个目录被称作沙盒 沙盒结构 沙盒结构主要为 DocumentLib...

  • iOS进阶(一)数据处理之文件读写

    一、沙盒机制 沙盒机制 每一个应用程序都会拥有一个应用程序沙盒 应用程序沙盒就是一个文件系统目录 iOS中的沙盒机...

  • 沙盒和NSBundle

    一、NSBundle目录和沙盒路径对比 沙盒目录: /Users/mrwangxiansen/Library/De...

  • iOS中的沙盒目录

    沙盒是在受限的安全环境中运行应用程序的一种做法,这种做法是要限制授权的应用程序的代码访问权限。iOS默认的情况下只...

  • 沙盒

    1、沙盒 程序只能访问自己的沙盒 NSHomeDirectory() 访问沙盒路径 沙盒下有三个目录:Docume...

网友评论

      本文标题:swift中的沙盒目录

      本文链接:https://www.haomeiwen.com/subject/izsvhttx.html