在 ARC 中, __bridge 应该只暗示没有所有权转移的演员表。但以下代码片段不会崩溃:
int i = 8;
NSString* str = [[NSString alloc] initWithFormat:@"abc%d",i];
Employee* e = [Employee newEmployee];
CFStringRef cfStr = (__bridge CFStringRef)(str);
str = nil;
printf("%s\n",CFStringGetCStringPtr(cfStr, kCFStringEncodingMacRoman));
当我将 nil 分配给 str 时,理想情况下应该释放字符串并且 printf 行应该崩溃。