IOS,ARC类型转换,显示转换 id 和 void *
/* * ARC 有效时三种类型转换: */ 1 、 __bridge // 转换 2 、 __bridge_retained // 转换 3 、 __bridge_transfer // 转换 // __bridge 转换 ////////////////////// // ARC 无效时 对应的代码 id obj = [[NSObject alloc] init]; void *p = obj; id o = p ; [o release]; // 在 ARC 有效时 通过 __bridge 转换 id 和 void * 就能够相互转换 id obj = [[ NSObject alloc ] init ]; void *p = ( __bridge void *) obj ; id o = ( __bridge id )p; void *p = ( __bridge void *)obj; id o = ( __bridge id )p; /* * 通过 __bridge 转换, id 和 void * 就能够相互转换。 * 但是转换为 void * 的 __bridge 转换 , 其安全性与赋值给 __unsafe_unretained 修饰符相近 , * 甚至会更低。如果管理时不注意赋值对象的所有者 , 就会因悬垂指针而导至程序崩溃。 */ // __bridge 转换