美文网首页
使用swift的函数式来简化代码

使用swift的函数式来简化代码

作者: 奈文摩尔定律 | 来源:发表于2016-11-02 15:34 被阅读33次

app中的附件下载存储及管理,我需要按照我自己的规则来寻找下载目录及相关属性组成的地址,如下是在制定地址中获取我所需的元组数据[UserAttach]以便我管理

1.获取路径

class func getAttachPath(userpath:Bool = false)->String{
        let model = getUserModel()
        var documents:String?
        let sp = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
        if sp.count > 0 {
            documents = (userpath ? "\(sp[0])/ylzc/attach/\(model.0.phoneNumber!)/" : "\(sp[0])/ylzc/attach/")
        }
        let fileManager = NSFileManager.defaultManager()
        var isdir:ObjCBool = true
        if !fileManager.fileExistsAtPath(documents!, isDirectory: &isdir){
            do{
                try fileManager.createDirectoryAtPath(documents!, withIntermediateDirectories: true, attributes: nil)
            }catch let error as NSError {
                print("\(error.localizedDescription)")
            }
        }
        return documents!
    }

2.数据处理

typealias Attach = (path:String,fileName:String)
typealias UserAttach = (phoneNumber:String,attachs:[Attach],isExpland:Bool)
class ManageAttachmentVC: StructVC {
    var tableview:UITableView!
    let attachIdentifier = "attachIdentifier"
    
    lazy var nsfilemanager = NSFileManager.defaultManager()
    lazy var attachData:[UserAttach] = {
        //let nsfilemanager = NSFileManager.defaultManager()
        let path =  User_Model.getAttachPath()
        let pathdataDirectory:[String] = try! self.nsfilemanager.contentsOfDirectoryAtPath(path)
        print(pathdataDirectory)

        let data:[UserAttach] = pathdataDirectory.map{(directory:String)->UserAttach in
            let attachs = try! self.nsfilemanager.contentsOfDirectoryAtPath(path  + directory).map{(file:String)->Attach in
                return    (path:path  + directory + "/" + file, fileName:file)
            }
            return (directory,attachs,false)
        }
        //let count = data.reduce(0, combine:  {$0+$1.attachs.count})
        //return (data,count)
        return data
    }()
}
extension ManageAttachmentVC{

3.效果图

swift.png

相关文章

  • 使用swift的函数式来简化代码

    app中的附件下载存储及管理,我需要按照我自己的规则来寻找下载目录及相关属性组成的地址,如下是在制定地址中获取我所...

  • swift常用高阶函数基本用法

    swift中比较常用的高阶函数有:map、flatMap、filter、reduce。使用高阶函数可以简化代码量,...

  • Swift UI控件

    swift是对OC语法的简化,使用函数式编码方式,编码更简洁灵活。使用let来声明常量,var来声明变量。一些类方...

  • 从Swift函数式编程到设计模式(-)

    Swift支持函数式编程范式。程序员可以使用Swift写出函数式风格的代码。函数式编程是一种以数学函数为程序语言建...

  • 常用的函数接口

    下面举个简单的例子: 可以看出,通过使用函数式接口,将函数作为参数传递,大大简化重用了代码。

  • ReactiveCocoa And ReactiveSwift

    ReactiveSwift(简称RAS),好处: ①.简化响应式函数的模式 在Swift中,我们有几种响应式...

  • Swift:基础(十五)函数

    Swift 函数 Swift 函数用来完成特定任务的独立的代码块。 Swift使用一个统一的语法来表示简单的C语言...

  • Swift基础(六)函数

    Swift 函数 Swift 函数用来完成特定任务的独立的代码块。 Swift使用一个统一的语法来表示简单的C语言...

  • Swift - 函数

    Swift 函数 Swift函数用来完成特定任务的独立的代码块。Swift使用一个统一的语法来表示简单的C语言风格...

  • Swift 函数 & 闭包

    Swift 函数 Swift 函数用来完成特定任务的独立的代码块。Swift使用一个统一的语法来表示简单的C语言风...

网友评论

      本文标题:使用swift的函数式来简化代码

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