NSString 是Foundation框架提供的不可变字符串类。
CFStringRef 是Core Foundation框架中的不可变字符串类型。
CFStringRef类型判断:
CFStringRef cfString = CFSTR("111");
if (CFGetTypeID(cfString) == CFStringGetTypeID()) {
NSLog(@"变量是CFStringRef类型");
}
互相转换
/*
__bridge_retained:转换时,将对象的所有权转移给目标变量(相当于对源对象执行 retain 操作)
__bridge_transfer:转换时,将对象的所有权从源变量转移给目标变量(相当于对源对象执行 release 操作)
__bridge 实现直接转换,没有引用计数操作,适用于两种指针类型的相互赋值
*/
//NSString 转 CFStringRef
NSString *str1 = @"123";
CFStringRef str2 = (__bridge CFStringRef)str1;
//printf("CFGetTypeID===%lu",CFGetTypeID(str2));
//
CFStringRef str3 = CFSTR("456");
NSString *str4 = (__bridge NSString *)str3;