0

我想知道 +[NSString stringWithContentsOfURL:usedEncoding:error:]CoreFoundation 中的等价物是什么?

我知道(__bridge NSString *)这次我可以使用这个东西了

在我看来,在objective-c中有几行来制作东西是丑陋的

...
CFErrorRef error = NULL;
CFURLRef fileURL = CFBundleCopyResourceURL(bundle,
                                           CFSTR("file"),
                                           CFSTR("txt"),
                                           NULL);

// Ugly piece of objc code in my whole C source file :(
NSError *nsError = (__bridge NSError *)(error);
NSString *nsString = [NSString stringWithContentsOfURL:(__bridge NSURL *)fileURL
                                          usedEncoding:NULL
                                                 error:&nsError];

CFStringRef fileContents = (__brigde CFStringRef)nsString; 
...
4

1 回答 1

0

你可以尝试使用

CFStringCreateFromExternalRepresentation

我会想象代码是这样的,

NSData *data = [NSData dataWithContentsOfFile:<path to your file>]
CFStringRef string = CFStringCreateFromExternalRepresentation(NULL, (CFDataRef)data, kCFStringEncodingUTF8);

理想情况下,要访问错误,您还可以使用 NSData 的 dataWithContentsOfFile:options:error:

于 2012-05-23T07:56:48.027 回答