我有一个非常简单的代码片段来获取一个使用的应用程序支持目录。问题是,它不起作用!我在 a 中获取值CFArrayRef
(因为我想使用 C 代码,因为稍后我将在 C++ 应用程序中使用此代码段)并尝试使用CFArrayGetValueAtIndex()
. 我使用 C 样式转换将返回的转换void*
为 achar*
并尝试使用 输出它printf()
,但没有输出任何内容!谁能解释为什么?我已经通过文档在线查看CFArray
并尝试用谷歌搜索该问题,但一无所获。任何帮助将非常感激!
代码:
#include <Foundation/Foundation.h>
#include <typeinfo>
int main (int argc, const char * argv[])
{
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
CFArrayRef array = \
(CFArrayRef)NSSearchPathForDirectoriesInDomains(
NSApplicationSupportDirectory,
NSUserDirectory,
YES);
char* string = (char*)CFArrayGetValueAtIndex(array, 0);
printf("string: %s\n", string);
[pool drain];
}