iOS中bridge的使用

2016-08-06  本文已影响134人  luffy的笑容
- (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);
    
}

上一篇下一篇

猜你喜欢

热点阅读