小编use*_*014的帖子

使用 DiskArbitration 在 OSX 中卸载磁盘

我正在尝试在 OSX 中卸载磁盘。代码工作正常,但是只有在出现错误时,磁盘卸载成功时才会调用回调。我阅读了 DiskArbitrationProgGuide 并按照步骤操作,但尚未取得任何进展。有人可以帮我吗?

@interface DriverUtilitiesController()

void unmount_done(DADiskRef disk,
                  DADissenterRef dissenter,
                  void *context);

@end

+ (void)umnountDrivePath:(NSString *)voulumePath
{
    DASessionRef session = DASessionCreate(kCFAllocatorDefault);

    CFURLRef path = CFURLCreateWithString(NULL, (__bridge CFStringRef)voulumePath, NULL);

    DADiskRef disk = DADiskCreateFromVolumePath(kCFAllocatorDefault, session, path);

    DADiskUnmount(disk, kDADiskUnmountOptionDefault, unmount_done, NULL);

    CFRelease(disk);
}

#pragma mark - Unmount Callback

void unmount_done(DADiskRef disk,
                  DADissenterRef dissenter,
                  void *context)
{

    NSLog(@"Inside unmount_done");

    if (dissenter)
    {
        // Unmount failed. //
        NSLog(@"Unmount failed.");

    } else {
        NSLog(@"Unmounted Volume");
    }
}
Run Code Online (Sandbox Code Playgroud)

正在更新。感谢 Ken Thomases,代码现在可以运行了

- (id)init
{ …
Run Code Online (Sandbox Code Playgroud)

macos objective-c diskarbitration

4
推荐指数
1
解决办法
1461
查看次数

标签 统计

diskarbitration ×1

macos ×1

objective-c ×1