NSString *aNSString;
CFStringRef aCFString;
aCFString = CFStringCreateWithCString(NULL, [aNSString UTF8String], NSUTF8StringEncoding);
aCFString = CFXMLCreateStringByUnescapingEntities(NULL, aCFString, NULL);如何从aCFString获取新的NSString
发布于 2009-03-12 20:37:33
NSString和CFStringRef是“免费桥接的”,这意味着你可以简单地在它们之间进行类型转换。
例如:
CFStringRef aCFString = (CFStringRef)aNSString;完美而透明地工作。同样:
NSString *aNSString = (NSString *)aCFString;之前的语法用于MRC。如果您使用的是ARC,则新的强制转换语法如下:
NSString *aNSString = (__bridge NSString *)aCFString;效果也很好。需要注意的关键一点是,CoreFoundation通常会返回引用计数为+1的对象,这意味着它们需要被释放(所有CFTypeCreate格式函数都会这样做)。
好消息是,在Cocoa中,您可以安全地使用自动释放或释放来释放它们。
https://stackoverflow.com/questions/640367
复制相似问题