目前我只能访问我的pList,如果它在我的user / documents文件夹中,我怎样才能改变项目的pList部分(我正在使用Xcode 4),我正在使用命令行来测试理论,但我想将其纳入应用程序。我是否需要将其添加到构建中?
//=================GET FILE PATH FOR PLIST
NSError *error;
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); //1 Create a list of paths.
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"mypList.plist"]; //3
NSFileManager *fileManager = [NSFileManager defaultManager];
if (![fileManager fileExistsAtPath: path])
{
NSString *bundle = [[NSBundle mainBundle] pathForResource:@"mypList" ofType:@"plist"]; //5
[fileManager copyItemAtPath:bundle toPath: path error:&error]; }
}
//==================READ PLIST
NSMutableDictionary *savedStock = [[NSMutableDictionary alloc] initWithContentsOfFile: path];
NSLog(@"%@", savedStock);
[savedStock release];
答案 0 :(得分:1)
如果您想让它成为应用程序的一部分,最好的方法是将文件复制到项目中。
答案 1 :(得分:1)
如果您只是想在应用中阅读它,请将其添加到项目中,然后它将成为捆绑包的一部分(因此无论何处启动.app文件,您都应该能够在代码中找到它)。
[[NSBundle mainBundle] bundlePath];
应该大致指向正确的方向......
如果您希望回写它,那么您应该让应用程序测试它是否存在于应用程序库文件夹中(user / Library / your_application_name - OSX库中有方法可以找到库文件夹)如果它没有不存在然后从捆绑中加载它并在退出/退出/保存/更改等时将其写回相应的应用程序库文件夹。
这也可能有帮助......
NSString *libraryFolderPath = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) lastObject];