我正在尝试在 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)