gpt4 book ai didi

objective-c - 相当于 +[NSString stringWithContentsOfURL :usedEncoding:error:] for CFStringRef

转载 作者:行者123 更新时间:2023-11-30 18:00:11 25 4
gpt4 key购买 nike

我想知道什么相当于+[NSString stringWithContentsOfURL:usedEncoding:error:] 在 CoreFoundation 中?

我知道我可以使用 (__bridge NSString *) 东西,这次我宁愿让我的生活变得复杂一点,并了解一下在 Cocoa 出现之前这是如何完成的......:)

按照我的口味,在 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;
...

最佳答案

您可以尝试使用

CFStringCreateFromExternalRepresentation

我想代码是这样的,

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

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

关于objective-c - 相当于 +[NSString stringWithContentsOfURL :usedEncoding:error:] for CFStringRef,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10715583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com