Iphone Xcode创建中的plist

Iphone Xcode创建中的plist,iphone,xcode,plist,Iphone,Xcode,Plist,当我为plist创建一个简单的应用程序时,如下链接所示: 当我调试它的时候。。我正在获取plist文件的路径。但是当我使用下面的语句时 // Build the array from the plist NSMutableArray *array2 = [[NSMutableArray alloc] initWithContentsOfFile:path]; 我在array2中没有任何价值。。。可能是什么问题?可能是 该文件在指定的路径上不存在,在array2中为零。 该文件存在,但由于某

当我为plist创建一个简单的应用程序时,如下链接所示:

当我调试它的时候。。我正在获取plist文件的路径。但是当我使用下面的语句时

// Build the array from the plist  
NSMutableArray *array2 = [[NSMutableArray alloc] initWithContentsOfFile:path];
我在array2中没有任何价值。。。可能是什么问题?

可能是

该文件在指定的路径上不存在,在array2中为零。 该文件存在,但由于某些格式损坏,无法正确读取,并且在array2中也会得到零。 该文件存在且其格式正确,但中没有值,您将得到一个空数组。 当使用NSString*path=[[NSBundle mainBundle]pathForResource:@DrinkArray of type:@plist];,它假设您的应用程序包中有一个格式正确的plist文件,名为DrinkArray'DrinkArray.plist'。确保您的文件也已复制到应用程序包中在Xcode中检查此项,单击您的项目,然后单击构建阶段,您的文件应显示在“复制包资源”中


我猜你得到了nilas文件的路径,因此在array2中。尝试记录路径字符串以进行检查

这是我为plist得到的最终解决方案

当您创建第一个元素为数组的plist文件时。。那么它的XML内容将如下所示:

<?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">
<dict>
    <key>Root</key>
    <array>
        <string>Firecracker</string>
        <string>Lemon Drop</string>
        <string>Mojito</string>
    </array>
</dict>
</plist>
这里你有不必要的标签,而不是我们应该有的,因为你的根元素必须是数组。。。因为您正在接收NSMUTABLEARRY对象

所以你的plist文件一定是这样的

<?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>Firecracker</string>
        <string>Lemon Drop</string>
        <string>Mojito</string>
    </array>
</plist>

我已经检查过它是否工作正常……

我想你可以试试这样的东西:

    NSMutableDictionary *dict = [[NSMutableDictionary alloc] initWithContentsOfFile:path];
    NSMutableArray *array = [dict objectForKey:@"Root"];

    // Show the string values  
    for (NSString *str in array)
    {
        NSLog(@"--%@", str);
    }
如果这有帮助,请写封信

干杯,
Kamil

在xcode 5>中,确保文件位于编译源代码区域

我已将此代码保留在-void viewDidLoad{}中。如何获取路径?如何创建plist?您是否尝试从主捆绑包或apps documents目录将其红色化?-voidviewDidLoad{[super viewDidLoad];NSString*path=[[NSBundle mainBundle]pathForResource:@DrinkArray of type:@plist];NSMutableArray*array2=[[NSMutableArray alloc]initWithContentsOfFile:path];forNSString*str在array2{NSLog-%@,str;}}你的plist文件管理员在哪里?我的支持文件组中有plist文件。它包含作为数组的根元素和根数组中的3个字符串元素。我已经检查了“复制捆绑资源”,它显示了DrinkArray.plist文件。另外,我在Xcode中的项目向我显示了Supported Files组中的那个文件。我仍然在array2中得到空值…好的,只需使用NSLog@%@,path记录文件的路径;告诉我们它打印了什么/Users/myname/Library/Application Support/iPhone Simulator 4.3/Applications//plistDemo.app/DrinkArray.plist当我保存nslogo时,它显示在路径中。因此,如果文件确实存在于此路径中,您可以轻松地检查它,并且它的格式与链接页面上显示的图片相同,不应该有任何问题,请发回,这个问题真的很有趣