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 に答える