__bridge

来源:互联网 发布:双色球万能矩阵必中6码 编辑:程序博客网 时间:2024/06/05 16:54
  • 在ARC环境下,编译器不会处理C语言申请的内存空间.
  • 在ARC环境下,当出现C语言和OC语言的混合开发时,需要实现数据类型的转换,在数据类型转换时还需要使用桥接,告诉编译器内存管理方式.
举例 : 
- (void)pthreadDemo {    // 新线程的标示符    pthread_t ID;    // 定义异步函数的参数    // char *cStr = "hello";    NSString *ocStr = @"hello";    // 创建子线程 : C和OC的混编,数据类型转换结束后使用__bridge标记,告诉编译器内存管理方式    int result = pthread_create(&ID, NULL, demo, (__bridge void *)(ocStr));    // 判断创建子线程是否成功    if (result == 0) {        NSLog(@"子线程创建成功");    } else {        NSLog(@"子线程创建失败");    }}/// 子线程执行的函数void *demo(void *param) {    // 接收外界传入的参数 : C和OC的混编,数据类型转换结束后使用__bridge标记,告诉编译器内存管理方式    NSString *str = (__bridge NSString *)(param);    NSLog(@"demo = %@ %@",str,[NSThread currentThread]);    return NULL;}

原创粉丝点击