[英]how to convert a struct converted to const char (c++) to struct objective-c
[英]Getting null when converting const char* to NSString Objective-C
我正在尝试将从我拥有的 C++ 方法中获得的 const char* 转换为 Objective-C 中方法中的 NSString。 这是来自 C++ 的方法:
#define EXPORT __attribute__((visibility("default")))
EXPORT
string getAudioWmark(const char* _filename)
{
string filename = string(_filename);
string result;
result = get_watermark(filename, "");
return (result.c_str());
}
这是在调试器视图中返回的结果:
result std::string "pattern 0:00 f59e26b2f4668d02bd33e03a1c0d8892 0.774 0.774 CLIP-A\n\n"
这是 Objective-C 的 .h 文件中方法的声明:
extern const char* getAudioWmark(const char* filename);
@interface WatermarkLib : NSObject
- (void)getAudio:(NSString*)filename;
@end
这是该方法的 .mm 实现:
- (void)getAudio:(NSString*)filename {
const char *cString = [filename cStringUsingEncoding:NSASCIIStringEncoding];
NSString* externalString = [NSString stringWithCString:getAudioWmark(cString) encoding:NSUTF8StringEncoding];
NSLog(@"Exito! %@", externalString);
}
“externalString”为空,这就是我要解决的问题。
这应该可以帮助你。
const char *cString = filename.UTF8String;
但请确保文件名有内容,否则它必须导致 null
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.