本帖最后由 wei__cn 于 2012-10-23 10:55:59 编辑

解决方案 »

  1.   

    看你的plist文件,其结构是这样的
    Root
       ....$version
       ....$objects
                    ....array
       .....$archiver整个plist文件你可以看成是一个字典。所以, Root为根键 其值还是一个字典,这个字典包括$version,$objects等等。而$objects这个对应的是一个Array数组。所以应该是这样。。
    NSDictionary *dictionary = [[NSDictionary alloc] initWithContentsOfFile:path];
    然后再NSDictionary *rootDic = [dictionary objectForKey:@"Root"];
    然后再NSArray *arr = [rootDic objectForKey:@"Presidents"];
    当然取之前最好判断下其状态,为空啊为什么的。至于你写的打包又解包啥的代码,我不是很明白。读plist不是这样读的,除非你保存的时候对当前的内容进行打包了,不然不用上面的代码。
      

  2.   

    多谢楼上指点啊!
    NSDictionary *rootDic = [dictionary objectForKey:@"Root"];没有得到任何内容啊!
    我是刚学习ios(自学),还不怎么理解plist文件,这个文件是拷贝过来的,只是里面有些内容我还不是很了解。
    那些$version、$objects前面的 $ 符号是什么意思啊?在整个文件里面并没有创建Presidents键,为什么通过这个键可以获得一个个的President对象?我自己写的代码不能实现,但是示例代码却可以,两个地方的代码是一样的,就是上面的那段,是不是在这个plist文件里面有些什么设置啊?