阅读在线托管的.plist文件

时间:2015-05-16 22:00:42

标签: objective-c info.plist

我正在处理一个需要每隔几个月更新一次.plist文件的应用程序,我不知道每次都要重新提交该应用程序的内容,因此他们是一种托管该应用程序的方法。 plist文件在线并让应用程序调用它进行更新?我尝试过使用NSURLConnection(或者我没有设置好它)但是那不起作用......还有其他想法吗?这是我使用http://www.iphonedevcentral.com/wp-content/uploads/2009/07/TestData.plist的示例文件 一如既往地感谢,这是我的代码:

NSDictionary *mainDictionary = [NSDictionary dictionaryWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"NewsSources" ofType:@"plist"]];

如何更改代码以便我可以访问在线托管的文件?

1 个答案:

答案 0 :(得分:1)

您的地址示例中的.plist是顶级NSArray,而不是NSDictionary。如果您尝试使用它,如果您需要NSDictionary,则会失败。

其内容清楚地表明了:

<?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> <================= *** HERE ***
    <dict>
        <key>title</key>
        <string>Batman Begins</string>
        <key>coverImage</key>
        <string>batman_begins.png</string>
        <key>featureLength</key>
        <integer>140</integer>
        <key>releaseDate</key>
        <date>2008-07-08T23:32:07Z</date>
    </dict>
    <dict>
        <key>title</key>
        <string>The Dark Knight</string>
        <key>coverImage</key>
        <string>dark_knight.png</string>
        <key>featureLength</key>
        <integer>152</integer>
        <key>releaseDate</key>
        <date>2008-12-10T00:32:07Z</date>
    </dict>
    <dict>
        <key>title</key>
        <string>The Prestige</string>
        <key>coverImage</key>
        <string>prestige.png</string>
        <key>featureLength</key>
        <integer>130</integer>
        <key>releaseDate</key>
        <date>2007-02-21T00:32:07Z</date>
    </dict>
</array>
</plist>

您可以使用:

NSArray *array = [NSArray arrayWithContentsOfURL:[NSURL URLWithString:@"http://www.iphonedevcentral.com/wp-content/uploads/2009/07/TestData.plist"]];

如果plist(您想要使用)在顶级真的是NSDictionary,您可以使用类似的方法:

NSDictionary *dict = [NSDictionary dictionaryWithContentsOfURL:[NSURL URLWithString:@"linkToNSDictionaryTopLevel.plist"]];