我正在编写一个 iOS 加载器,它从 plist 加载数据,旨在通过 OpenGL 将顶点数据等发送到 GPU。我可以轻松提取标准类型的对象,如字符串、整数等。
当我遇到作为字典对象的原始数据时,我会感到困惑。plist是我的3D建模软件保存的原生文件,我不是这个软件的作者,所以不知道数据是怎么写入这个对象的。
我确实知道该对象的一些事情,它可能是一个浮点数组,每个顶点都需要一个用于 X、Y 和 Z 的浮点值,下面的示例中有 26 个顶点。
这是 plist 文件中的实际数据对象:
<key>vertex</key>
<data>
AAAAAL8AAAAAAAAAAAAAAAAAAAC/AAAAPwAAAAAAAAA+gAAAvwAA
AD7ds9cAAAAAPt2z2L8AAAA+f///AAAAAD8AAAC/AAAAsru9LgAA
AAA+3bPXvwAAAL6AAAEAAAAAPoAAAb8AAAC+3bPXAAAAALM7vS6/
AAAAvwAAAAAAAAC+gAADvwAAAL7ds9UAAAAAvt2z2L8AAAC+f//9
AAAAAL8AAAC/AAAAMczeLgAAAAC+3bPYvwAAAD5///0AAAAAvn//
+L8AAAA+3bPaAAAAAD6AAAA/AAAAPt2z1wAAAAAAAAAAPwAAAD8A
AAAAAAAAAAAAAD8AAAAAAAAAAAAAAD7ds9g/AAAAPn///wAAAAA/
AAAAPwAAALK7vS4AAAAAPt2z1z8AAAC+gAABAAAAAD6AAAE/AAAA
vt2z1wAAAACzO70uPwAAAL8AAAAAAAAAvoAAAz8AAAC+3bPVAAAA
AL7ds9g/AAAAvn///QAAAAC/AAAAPwAAADHM3i4AAAAAvt2z2D8A
AAA+f//9AAAAAL5///g/AAAAPt2z2gAAAAA=
</data>
关于如何阅读这个的任何想法?这就是我所在的位置:
// get plist
NSString *path = [[NSBundle mainBundle] pathForResource:@"Cylinder" ofType:@"jas"];
NSDictionary *cheetahFile = [NSDictionary dictionaryWithContentsOfFile:path];
NSArray *objectArray = [cheetahFile objectForKey:@"Objects"];
NSDictionary *model = [objectArray objectAtIndex:1];
//get vertex count
GLshort vertCount = [[model valueForKey:@"vertexcount"] intValue];
//All good so far...but...
//get vertex data?... this doesn't work:
NSMutableArray *vertArray = [NSMutableArray arrayWithObject:[model objectForKey:@"vertex"]];
PS如果我犯了菜鸟的错误,请提前道歉。我的职业是设计师,不是程序员。所以当我吃蜡笔的时候,用舒缓的语气慢慢说话。:)