[英]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.