从Web服务器加载PLIST

时间:2012-02-15 16:21:11

标签: iphone ios ios4 plist reachability

尝试从URL加载plist并让它覆盖当前的plist。下面的代码适用于模拟器,但在检查iPhone 4设备时,它不会下载更新的内容? Xcode的新人有任何智慧的话语吗?

Reachability *r = [Reachability reachabilityWithHostName:@"www.google.com"];
NetworkStatus internetStatus = [r currentReachabilityStatus];

if ((internetStatus == ReachableViaWiFi) || (internetStatus == ReachableViaWWAN)){

    NSString *path = [[NSBundle mainBundle] bundlePath];
    NSString *finalPath = [path stringByAppendingPathComponent:@"SpecialCases.plist"];
    NSURL *theFileURL = [NSURL URLWithString:@"http://www.awebsite.com"];
    NSDictionary *replace = [[NSDictionary alloc] initWithContentsOfURL:theFileURL];
    if (replace != nil){
    [replace writeToFile:finalPath
                 atomically:YES];
    }
}

1 个答案:

答案 0 :(得分:3)

您无法在iOS设备上写入应用程序的捆绑包,因为这不是您可以编辑的沙箱的一部分。您必须将文件保存到文档目录,如下所示:

NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *finalPath = [path stringByAppendingPathComponent:@"SpecialCases.plist"];

然后从那里加载plist,而不是你的app bundle。