gpt4 book ai didi

c++ - Objective-C & C++ 接口(interface) GSCBufferString 到字符串

转载 作者:行者123 更新时间:2023-11-28 05:50:14 24 4
gpt4 key购买 nike

我正在为 C++ 类编写 Objective-C 包装器。在 OC 方面,我必须采取 NSData (从 json 文件中读取)从中获取列表并将其转换为 std::vector< std::string > .到目前为止,这是我的代码(在 mm 文件中):

NSData *input = [NSData dataWithContentsOfFile:[NSString stringWithUTF8String:"1455469592904_acceldata742283.json"]];    
NSError* error;
NSDictionary* jsonArray = [NSJSONSerialization JSONObjectWithData:input options:NSJSONReadingMutableContainers error:&error];
NSMutableArray *accdata = [jsonArray valueForKeyPath:@"data.accelerometer" ];
int size = [accdata count];
vector<string> cppAccdata;
for (int i = 0; i< size; i++){
//~ cppAccdata.push_back();
NSLog(@"%@",[accdata objectAtIndex:i]);
}

accdata松散地说是一个字符串列表。 json 文件基本上看起来像这样(有更多行,但那不是重点):

{
"data" : {
"accelerometer" : [
"1455463005.714 -8.311620700836182 -3.969735990142822 -3.737648066711425",
"1455463005.724 -8.256703700256347 -4.017769660949707 -3.680336864471435" ] }}

代码的输出是:

2016-02-15 14:18:16.212 test-OC[10300] 1455463066.241     -7.960421244812011     -4.400093738555908     -3.746177410125732
2016-02-15 14:18:16.212 test-OC[10300] 1455463066.261 -8.019677735900878 -4.377498460388184 -3.634847032928467
2016-02-15 14:18:16.212 test-OC[10300] GSCBufferString

技术上我需要转换 [accdata objectAtIndex:i]到一个 std::string,我想它可以通过 C const char * 工作, 但我没能找到任何关于转换 GSCBufferString 的信息变成任何东西。我怎样才能做到这一点?也可能有一种更优雅的方式来遍历 accdata .

最佳答案

NSArray *accdata = [jsonArray valueForKeyPath:@"data.accelerometer" ];
vector<string> cppAccdata;
for (NSString *str in accdata) {
cppAccdata.push_back(str.UTF8String);
}

关于c++ - Objective-C & C++ 接口(interface) GSCBufferString 到字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35410777/

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