作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在为 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/
我正在为 C++ 类编写 Objective-C 包装器。在 OC 方面,我必须采取 NSData (从 json 文件中读取)从中获取列表并将其转换为 std::vector .到目前为止,这是我的
我是一名优秀的程序员,十分优秀!