1

我想使用 pathForResource,但如果路径不存在,它看起来不会创建路径。因此,我尝试通过执行以下操作手动创建一个:

 NSString *path = [NSString stringWithFormat:@"%@/%@.plist",[[NSBundle mainBundle] bundlePath],@"myFileName"];

我正在动态创建文件,因此我需要在拥有Build and Run应用程序后访问它们。但它将项目放在一个唯一的 id 文件夹中,因此路径类似于:

/Users/RyanJM/Library/Application Support/iPhone Simulator/3.0/Applications/80986747-37FD-49F3-9BA8-41A42AF7A4CB/MyApp.app/myFileName.plist

但是每次我进行构建时,这个唯一的 id 都会改变。创建我每次都能到达的路径的正确方法是什么(即使在模拟器中)?

谢谢。

更新:编辑了这个问题,希望对将来遇到它的人有所帮助。

更新:IWasRobbed 回答了创建路径 URL 的正确方法。但我能找到的最佳答案来自Brad Parks。不过,我确实希望有一种更清洁的方式。

4

1 回答 1

1

通过您提出问题的方式,这就是您在构建之前阅读捆绑中包含的 plist 的方式:

NSString *propertyListPath = [[NSBundle mainBundle] pathForResource:SomeString ofType:@"plist"];

如果您想访问每个应用程序所具有的目录作为您在构建后创建的文件的唯一存储区域,请使用以下命令:

#define kFilename   @”data.plist”

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

return [documentsDirectory stringByAppendingPathComponent:kFilename];
}

然后你可以检查它并在这里做一些数据处理:

NSString *filePath = [self dataFilePath]; 

if ([[NSFileManager defaultManager] fileExistsAtPath:filePath]) {
// do something with data here
}

Beginning iPhone 3 Development如果您专门购买/阅读了第 11 章,他在其中讨论了数据持久性(这是这个示例的来源),那么您将为自己省去很多麻烦。这是一本很棒的书。

于 2010-06-23T23:16:11.950 回答