使用cocoa和objective-c在Xcode中安装SMB驱动器

使用cocoa和objective-c在Xcode中安装SMB驱动器,xcode,cocoa,netfs,Xcode,Cocoa,Netfs,我正在尝试构建一个小应用程序来登录SMB网络驱动器,但我无法获得任何用于实际连接的功能。有人有过NetFSMountURLAsync的使用经验吗?或者更好,举个例子?如果您遇到问题,我会从同步版本开始: let serverPath = NSURL(string: "smb://yourserverpath/share")! as CFURL let mountPath = NSURL(string: "/localmountpointyouwanttouse_shouldalreadyexis

我正在尝试构建一个小应用程序来登录SMB网络驱动器,但我无法获得任何用于实际连接的功能。有人有过NetFSMountURLAsync的使用经验吗?或者更好,举个例子?

如果您遇到问题,我会从同步版本开始:

let serverPath = NSURL(string: "smb://yourserverpath/share")! as CFURL
let mountPath = NSURL(string: "/localmountpointyouwanttouse_shouldalreadyexist_ifnot_create_it_before")! as CFURL
let mountOptions = NSMutableDictionary(dictionary: ["MountAtMountDir": false]) as CFMutableDictionaryRef
NetFSMountURLSync(serverPath, mountPath, nil, nil, nil, mountOptions, nil)
如果您想使用默认的挂载点,也只需在其中传递nil

NetFSMountURLSync(serverPath, nil, nil, nil, nil, mountOptions, nil)
实际上,即使您只传入服务器路径,它也应该可以工作。我只包含了mountOptions,因此如果需要设置任何选项,您可以举出一个示例

NetFSMountURLSync(serverPath, nil, nil, nil, nil, nil, nil)

第三个和第四个参数是user和pass,如果不希望操作系统处理该部分,可以提供这些参数

你试过什么?结果是什么?它与您预期的结果有何不同?
knetfsmontatmountdirkey
是一个符号常量,实际上是一个宏。这不是真正的钥匙。它在NetFS.h中定义为
CFSTR(“MountAtMountDir”)
,因此您可能会在Swift中使用
“MountAtMountDir”
。Ken是正确的。如果要设置这些选项,则应将其设置为:
let mountOptions=NSMutableDictionary(dictionary:[“MountAtMountDir”:true])作为CFMutableDictionaryRef
。@JeremyPope您提供的代码在NSLog中显示了一个错误,上面写着“致命错误:在展开可选值时意外地发现了nil”,当我从OSX终端命令行装载SMB驱动器时,它可以工作。你知道这是怎么发生的吗?@JeremyPope我也在尝试这样做,但我收到一条错误消息“函数'NetFSMountURLSync'的隐式声明在C99中无效”,我尝试过导入,但没有成功。您能在这里帮助我吗。@SarimSidd您需要在swift文件中导入NetFS