Swift中FSMountServerVolumeSync发生了什么变化?

时间:2015-03-14 07:04:18

标签: cocoa swift xcode6 osx-yosemite

我正在尝试找到一种在我正在创建的Cocoa应用程序中安装SMB共享的方法,但是所有文档都指向FSMountServerVolumeSync但是当我将它放入我的代码时出现错误

  

' FSMountServerVolumeSync'不可用:从OS X 10.9及更早版本中弃用的API在Swift中不可用

我发现了一些关于旧替代品的信息--DADiskMount但我不知道这是否是合适的替代品,也不知道如何实施它。

现在有一种Swift方式来安装适用于最新版Swift的SMB共享吗?

1 个答案:

答案 0 :(得分:2)

因此,对于寻找答案的人来说,似乎没有Apple提供的文档,但经过多次搜索后我发现NetFS.framework仍然非常有效并且有望得到支持。

一旦我将NetFS框架包含在Swift文件中并进行了游戏,一切都按预期工作。

include Coco
include NetFS    

func mountShare( serverAddress: String, shareName: String, userName: String, password: String) {
    let fm = NSFileManager.defaultManager()
    let mountPoint = "/Volumes/".stringByAppendingString(shareName)
    var isDir : ObjCBool = false
    if fm.fileExistsAtPath(mountPoint, isDirectory:&isDir) {
        if isDir {
            unmount(mountPoint, 0)
            println("unmount \(mountPoint)")
        }
    }
    let sharePath = NSURL(string: "\(serverAddress)/\(shareName)")!
    let mounted: Int32 = NetFSMountURLSync(sharePath, nil, userName, self.decodeStr(password), nil, nil, nil)
    if mounted > 0 {
        println("Error: sharePath: \(sharePath) Not Valid")
    } else {
        println("Mounted: \(sharePath)")
    }
}