Iphone 从web服务器加载PLIST

Iphone 从web服务器加载PLIST,iphone,ios,ios4,plist,reachability,Iphone,Ios,Ios4,Plist,Reachability,尝试从URL加载plist并使其覆盖当前的plist。下面的代码可以在模拟器上运行,但是当在iPhone4设备上检查时,它不会拉下更新的内容吗?对于一个新来的人来说,有什么智慧的话可以告诉他Xcode吗 Reachability *r = [Reachability reachabilityWithHostName:@"www.google.com"]; NetworkStatus internetStatus = [r currentReachabilityStatus]; if ((int

尝试从URL加载plist并使其覆盖当前的plist。下面的代码可以在模拟器上运行,但是当在iPhone4设备上检查时,它不会拉下更新的内容吗?对于一个新来的人来说,有什么智慧的话可以告诉他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];
    }
}

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

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

然后从那里加载plist,而不是您的应用程序包。

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

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

然后从那里加载plist,而不是你的应用程序包。

当你说“它不会下拉更新的内容”时,你的确切意思是什么?设置一个断点并逐步遍历代码-它是否进入条件分支?检查变量的值。是否为replace nil,是否引发任何错误?在这种情况下,检查可达性状态没有多大意义。继续,在后台下载plist。如果下载失败,您将知道。你有没有试着注释一下
if
?是的,直到后来我才考虑把if语句放进去。我已经把可达性问题提出来了。当你说“它不会拉下更新的内容”时,你到底是什么意思?设置一个断点并逐步遍历代码-它是否进入条件分支?检查变量的值。是否为replace nil,是否引发任何错误?在这种情况下,检查可达性状态没有多大意义。继续,在后台下载plist。如果下载失败,您将知道。你有没有试着注释一下
if
?是的,直到后来我才考虑把if语句放进去。我已经把可达性的东西拿出来了。啊。。。这是有道理的。我试试看。啊。。。这是有道理的。我试试看。