在第一个视图的ViewDidAppear中调用第二个视图,并检查plist是否存在

时间:2011-12-12 08:56:28

标签: iphone objective-c ios xcode

我正在开发应用程序,其中第一个屏幕的ViewDidAppear检查了我的plist

NSString *path = [@"~Documents" stringByExpandingTildeInPath];
NSString *filePath = [NSString stringWithFormat:@"%@/data.plist",path];

然后转到第二个视图,否则在加载时保持第一个视图。问题是,当我在模拟器中运行我的应用程序时,检查plist是否存在工作,但是当我在iphone设备上安装我的应用程序然后在那里运行它时它不起作用。我陷入了这个问题。提前了解解决方案

2 个答案:

答案 0 :(得分:1)

您的应用程序沙箱中的Documents目录路径不正确,正确的方法是:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

另外,你怎么把它放到那个文件夹?如果该plist文件是您的应用程序中的资源,那么它最初位于应用程序包中,您需要在使用它之前将其复制到文档文件夹(如果您想要对它进行写访问)或者只是从资源中读取它。

// Path to plist in application resources
NSString *resourcePath = [[NSBundle mainBundle] pathForResource:@"data" ofType:@"plist];

答案 1 :(得分:0)

您确定将plist复制到项目目录中吗?如果您在不复制的情况下添加它,那么它将在xcode和模拟器中工作,但是当您将项目复制到另一台计算机时,而不是在将其加载到设备上时。