gpt4 book ai didi

objective-c - 将 C 类型转换为 Objective-C 对象

转载 作者:太空宇宙 更新时间:2023-11-04 02:14:04 24 4
gpt4 key购买 nike

我有两个问题。

  1. 如何使用 FILE* 实例创建 NSFileHandle 对象?

  2. 如何使用 void* 实例创建 NSData 对象?

很抱歉,没有上下文的信息很少。

就引用我最近的问题吧。 Weird behavior of fopen on ios我无法使用 native fopen 函数来创建内容或将内容写入文件。

结果就是想用ios框架里的api,把fopen和fwrite之类的代码包装起来。所以我应该将 FILE* 对象转换为 NSFileHandle 或可以操作文件的东西。另外,用void*处理的内容应该转换成ios框架可以接受的数据格式。我认为 NSData 应该是选择。

最佳答案

至于 FILE* 到 NSFileHandle,我找到了这个 mailing list完全符合您需要的问题。相关代码:

FILE *fp;
NSFileHandle *p;

fp = fopen( "foo", "r");
p = [[[NSFileHandle alloc] initWithFileDescriptor:fileno( fp)
closeOnDealloc:YES] autorelease];

它带有来自回答者的可爱警告:

Be careful not to read from fp, because stdio caches.

编辑:至于 NSData 的 void*,我认为您需要 NSData 的 -initWithBytesNoCopy:Length:freeWhenDone:。看这个related question关于如何使用它。

关于objective-c - 将 C 类型转换为 Objective-C 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10150836/

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