用触动怎么读取plist的数组?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用触动怎么读取plist的数组?相关的知识,希望对你有一定的参考价值。
用触动精灵的plist.read怎么读取plist的数组中指定的值?求大神解答,谢谢。
参考技术A .plist文件里面放的可能是数组也可能是字典,我们如果直接用NSLog方法打印数组,字典的时候,我们会得到的就是这样的编码格式的内容,这显然是不能用在android的,所以我们的思路是要将.plist中的内容打印为我们能处理的内容,那就是JsonString了。所以ios这边的做法,如图片所示,先将plist文件放入,然后读取出内部的数组信息,然后用SBJson转化为NSString,然后在NSLog打印出来,运行程序我们会得到数组无法从 plist 中读取数据
【中文标题】数组无法从 plist 中读取数据【英文标题】:array can't read data from plist 【发布时间】:2012-05-19 19:19:02 【问题描述】:我发现了几个类似的主题,但没有一个能解决我的问题。 基本上我想从 plist 中的数组中读取 nsstring,然后我想覆盖 nsstring 值。
NSArray *directoriespaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
NSString *documentsDir = [directoriespaths objectAtIndex:0];
NSString *fullnamefordir = [documentsDir stringByAppendingPathComponent:@"data.plist"];
NSArray *turns = [NSArray arrayWithContentsOfFile:fullnamefordir];
NSString *resultofarray = [turns objectAtIndex:0];
NSLog(@"%@",turns);
NSLog(@"%@",resultofarray);
nslog 总是显示 null 并且到目前为止我还没有尝试保存任何内容,因为我什至无法读取该值:/
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
<string>8</string>
</array>
</plist>
我也尝试过使用 nsdictionary,但它也不起作用 在此先感谢:)
【问题讨论】:
【参考方案1】:首先检查您的plist文件是否存在于文档目录中。
NSFileMangaer *objFileManager=[[NSFileManager alloc]init];
BOOL isfileExist=[objFileManager fileExistsAtPath:yourDocumentDirectoryPath];
如果 Bool 值为 true,则检查 plist 的内容。 可能是文件目录中不存在该文件,它在资源中。 如果您没有将 plist 从资源文件夹复制到文档目录,请先将其复制到那里,然后尝试访问它。
【讨论】:
nslog 显示该文件确实存在。将文件从资源复制到文档目录是什么意思,我在哪里可以找到这个文件夹? 检查您的文档目录中的 plist 文件。 YourUsername->Library->ApplicationSupport->IphoneSimulator->5.0->ChooseApplicationID->Documents 如果有很多应用程序可用,请删除所有并运行应用程序..只有一个应用程序会在那里,然后检查文档目录。 就像你说的,我删除了所有申请文件,我再次构建了我的应用程序。奇怪的是,现在我的 plist 文件在 Documents 中不存在,而且 nslog 显示该文件不存在。在这种情况下我该怎么办?顺便感谢您的回复。 这意味着您的 plist 文件在 resourceFolder 中,在开始任何操作之前先将其复制到文档目录中。 NSString *resourcePathPlist= [[NSBundle mainBundle] pathForResource:@"data" ofType:@"plist"];检查此路径是否存在。使用 fileManager 对象将其复制到 documentFolder。 [fileManagerObject copyItemAtPath:resoucePlistPath toPath:documentDirectoryPath 错误:&err]; 您无法更新应用程序包中的文件。 Application Bundle 文件是只读的。要对其进行编辑,您必须将其复制到文档中并开始操作。您在 xcode 中看到的文件位于 Application Bundle 中,您可以在 xcode 中对其进行编辑,但在运行应用程序时您无法对其进行编辑,即是只读的。以上是关于用触动怎么读取plist的数组?的主要内容,如果未能解决你的问题,请参考以下文章