繁体   English   中英

从DiskArbitration CFUUID对象创建字符串

[英]Create string from DiskArbitration CFUUID object

在我的程序中,我使用DiskArbitration检查数据库中的某些值,如果发生某些情况,请在挂载之前执行一些操作。 我在此回调中使用DARegisterDiskPeekCallback

DARegisterDiskPeekCallback(diskSession, kDADiskDescriptionMatchVolumeMountable, 0, determineIfNewDisk, NULL);

void determineIfNewDisk(DADiskRef disk, void* context)
{
    NSDictionary *diskProps = (__bridge NSDictionary *)DADiskCopyDescription(disk);
    CFUUIDCreateString(nil, *(CFUUIDRef *)diskProps[@"DAVolumeUUID"]);
}

我希望能够使用UUID并获取一个字符串来检查数据库,但是由于diskProps[@"DAVolumeUUID"]返回的是通用指针而不是CFUUIDRef指针,因此它不允许我运行CFUUIDCreateString() 我试图将上面的指针转换为CFUUIDRef指针,但出现此错误: Cast of an Objective-C pointer to 'CFUUIDRef *' ... is disallowed by ARC 如果我不尝试CFUUIDCreateString转换,则CFUUIDCreateString将不接受指针。

有没有一种方法可以:a)将指针转换为CFUUIDRef指针,或者b)获取UUID的字符串?

请改用以下代码:

CFUUIDCreateString(nil, (CFUUIDRef)diskProps[@"DAVolumeUUID"]);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM