iOS NSString和CFStringRef

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;
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容