iOS中bridge的使用

- (void)viewDidLoad {
    [super viewDidLoad];
    
    //Fundation 是 CoreFundation 一种包装,在MRC底层数据结构是一摸一样
    // 在MRC情况下 CF对象和NS对象是一个东西
//    NSString *string = [[NSString alloc] initWithString:@"aaa"];
//    CFStringRef cfstring = CFStringCreateCopy(NULL, "aaa");
//    CFStringRef cfstring = string;
//    NSString *string = cfstring;
//    NSLog(@"%@",string);
//    CFRelease(cfstring);
//    [string release];
    
    // __bridge                             内存管理者不切换
    // __bridge_transfer/CFBridgingRelease  内存管理者进行切换   把CF对象转换成NS对象,并且内存管理者切换
    // __bridge_retained/CFBridgingRetain   内存管理者进行切换   把NS对象转换成CF对象,并且内存管理者切换
    
    // ARC情况下 内存管理者
//    NSString *string = [[NSString alloc] initWithString:@"aaa"];
    CFStringRef cfstring = CFStringCreateCopy(NULL, NULL);
//    CFStringRef cfstring = CFBridgingRetain(string);
    NSString *string = CFBridgingRelease(cfstring);
    
}

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

相关阅读更多精彩内容

友情链接更多精彩内容