Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios cfuuid数组?_Ios_Uuid - Fatal编程技术网

Ios cfuuid数组?

Ios cfuuid数组?,ios,uuid,Ios,Uuid,这是我的密码: - (void)peripheralManager:(CBPeripheralManager *)peripheralManager central:(CBCentral *)central didSubscribeToCharacteristic:(CBCharacteristic *)characteristic { [self.centralManager retrievePeripherals:@[central.UUID]]; } 我得到一个错误: Colle

这是我的密码:

- (void)peripheralManager:(CBPeripheralManager *)peripheralManager central:(CBCentral *)central didSubscribeToCharacteristic:(CBCharacteristic *)characteristic
{
    [self.centralManager retrievePeripherals:@[central.UUID]];
}
我得到一个错误:

Collection element of type 'CFUUIDRef' (aka 'const struct __CFUUID *') is not an Objective-C object

我该怎么办?

我的建议是将其转换为NSString并将其添加到数组中

+ (NSString *)convertUUID:(CFUUIDRef)theUUID
{
    CFStringRef string = CFUUIDCreateString(NULL, theUUID);
    CFRelease(theUUID);
    return (__bridge_transfer NSString *)string;
}

我的建议是将其转换为NSString并将其添加到数组中

+ (NSString *)convertUUID:(CFUUIDRef)theUUID
{
    CFStringRef string = CFUUIDCreateString(NULL, theUUID);
    CFRelease(theUUID);
    return (__bridge_transfer NSString *)string;
}

尝试将其转换为Objective-C对象:

CFStringRef uuidString = CFUUIDCreateString(kCFAllocatorDefault, yourUUID);
NSString *uuidNSString = (__bridge NSString *)uuidString;
如果你需要它回来:

CFUUIDRef uuid = CFUUIDCreateFromString(kCFAllocatorDefault, uuidString);

尝试将其转换为Objective-C对象:

CFStringRef uuidString = CFUUIDCreateString(kCFAllocatorDefault, yourUUID);
NSString *uuidNSString = (__bridge NSString *)uuidString;
如果你需要它回来:

CFUUIDRef uuid = CFUUIDCreateFromString(kCFAllocatorDefault, uuidString);

问题:

CFStringRef uuidString = CFUUIDCreateString(kCFAllocatorDefault,@[central.UUID]);
NSString *uuidNSString = (__bridge NSString *)uuidString;
编译器只知道类型,不知道运行时行为。它不知道-最可能-<代码> CFUUIDRF 可以像任何普通Objto-C对象一样使用(虽然它并没有正式的免费桥接基础类对应)。它只看到
const struct\uu CFUUID
不是Objective-C类,它退出了

解决方案:

CFStringRef uuidString = CFUUIDCreateString(kCFAllocatorDefault,@[central.UUID]);
NSString *uuidNSString = (__bridge NSString *)uuidString;
I.我认为这会起作用-刚刚尝试过,它确实起作用,
CFUUID
甚至在使用
NSLog()打印时有一个很好的描述。
但是,它没有文档记录。只需将其转换为
id
,如下所示:

@[(__bridge id)central.UUID]
二,。是的,您可以将其转换为字符串,但这也不会使编译器错误消失-您确实需要该类型转换,因为编译器会对不兼容的类型产生怪癖:

CFStringRef uuidString = CFUUIDCreateString(kCFAllocatorDefault,@[central.UUID]);
NSString *uuidNSString = (__bridge NSString *)uuidString;

现在,这保证会起作用。

问题:

CFStringRef uuidString = CFUUIDCreateString(kCFAllocatorDefault,@[central.UUID]);
NSString *uuidNSString = (__bridge NSString *)uuidString;
编译器只知道类型,不知道运行时行为。它不知道-最可能-<代码> CFUUIDRF 可以像任何普通Objto-C对象一样使用(虽然它并没有正式的免费桥接基础类对应)。它只看到
const struct\uu CFUUID
不是Objective-C类,它退出了

解决方案:

CFStringRef uuidString = CFUUIDCreateString(kCFAllocatorDefault,@[central.UUID]);
NSString *uuidNSString = (__bridge NSString *)uuidString;
I.我认为这会起作用-刚刚尝试过,它确实起作用,
CFUUID
甚至在使用
NSLog()打印时有一个很好的描述。
但是,它没有文档记录。只需将其转换为
id
,如下所示:

@[(__bridge id)central.UUID]
二,。是的,您可以将其转换为字符串,但这也不会使编译器错误消失-您确实需要该类型转换,因为编译器会对不兼容的类型产生怪癖:

CFStringRef uuidString = CFUUIDCreateString(kCFAllocatorDefault,@[central.UUID]);
NSString *uuidNSString = (__bridge NSString *)uuidString;

现在,这保证会起作用。

在CFUUIDCreateString中查看第二个参数。同样在第一行中,您仍然在CF中。仍然不是对象。请参阅下面的答案以了解完整转换。这不是您的CFUUID吗?请查看CFUUIDCreateString中的第二个参数。同样在第一行中,您仍然在CF中。仍然不是对象。请参阅下面我的答案以了解完整转换。这不是您的CFUUID吗?很抱歉,我关注的是类型问题,真正的问题是将CF项添加到nsarray中。我戴着眼罩,无视我的反应。但是,如果您确实需要在某个时候进行转换,它是有用的。抱歉,我重点讨论了类型问题,真正的问题是将CF项添加到nsarray中。我戴着眼罩,无视我的反应。但是,如果您确实需要在某个时候转换,它是有用的。要搞乱您,有一个+1.:)@杰基,谢谢!请不要:PTo惹你,这里有+1.:)@杰基,谢谢!请不要:P