objective-c - 从 OS X 应用程序挂载网络卷

标签 objective-c macos cocoa

我正在尝试在 OS X 应用程序中安装网络卷。

我使用已弃用的 FSMountServerVolume 函数让它工作。该文档说“要安装网络卷,请改用 NetFSMountURLAsync”。但是当我尝试使用此功能时,我收到以下错误消息:

dyld: lazy symbol binding failed: Symbol not found: _NetFSMountURLSync  
Referenced from: /Users/username/Library/Developer/Xcode/DerivedData/AppName-ammmlfwhvlfxkdburfmzioformdn/Build/Products/Debug/AppName.app/Contents/MacOS/AppName
Expected in: /System/Library/Frameworks/NetFS.framework/Versions/A/NetFS

dyld: Symbol not found: _NetFSMountURLSync
Referenced from: /Users/username/Library/Developer/Xcode/DerivedData/AppName-ammmlfwhvlfxkdburfmzioformdn/Build/Products/Debug/AppName.app/Contents/MacOS/AppName
Expected in: /System/Library/Frameworks/NetFS.framework/Versions/A/NetFS

我是不是忘记了什么?我导入了 NetFS 框架。

最佳答案

好的,它看起来像 10.8 中引入的 NetFSMountURLSync() 等。

来自NetFS Changes :

Added AsyncRequestID
Added NetFSMountURLAsync()
Added NetFSMountURLBlock
Added NetFSMountURLCancel()
Added NetFSMountURLSync()
Added #def kNAUIOptionAllowUI
Added #def kNAUIOptionForceUI
Added #def kNAUIOptionKey
Added #def kNAUIOptionNoUI
Added #def kNetFSMountAtMountDirKey

因此,您将不得不在 10.7 及更低版本中使用“旧方式”,在 10.8 及更高版本中使用“新方式”。这意味着将 NetFS.framework 设置为可选而不是必需,并且需要执行各种运行时检查以查看需要使用哪个 API。

关于objective-c - 从 OS X 应用程序挂载网络卷,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15274920/

相关文章:

objective-c - 在 NSXMLParser 中解析 xml

objective-c - Mac App Storyboard - 在 NSViewController 中访问文档

iphone - 蓝牙管理器 : Don't get any "BluetoothDeviceDiscoveredNotification"

IOS 以固定时间间隔调度 Action

c++ - 从 C 代码调用具有复杂参数和复杂返回类型的 C++ 函数

javascript - 加快 Chrome 中测试的运行速度

cocoa - 如何计算 NSTextView 中选定文本的正确坐标?

objective-c - 使用 Foundation 的 Objective-C 中的命令行工具?

objective-c - 从字符串中删除字符和后面的所有内容

objective-c - 在 Xcode 8 中,如何让测试方法在给定的 XCTestCase 类中以特定顺序运行?