在纯 C 中获取 NSHomeDirectory()

问题描述 投票:0回答:1

我正在尝试在纯 C 中获得

NSHomeDirectory()

#include <CoreFoundation/CFBundle.h>
#include <CoreFoundation/CoreFoundation.h>

void testFunc() {
    printf(NSHomeDirectory()); 
}
c objective-c nsstring nshomedirectory
1个回答
0
投票

需要将

UTF8String
消息发送给
NSString
返回的
NSHomeDirectory()
对象,获取C字符串。要在纯 C 中执行此操作(已测试):

#include <objc/runtime.h>
#include <objc/message.h>
void *NSHomeDirectory();
void testFunc() {
    puts(((const char *(*)(void *, SEL))objc_msgSend)(NSHomeDirectory(), sel_getUid("UTF8String")));
    // Also use puts() instead of printf() here
}

注:使用

-framework Cocoa

编译
© www.soinside.com 2019 - 2024. All rights reserved.