我在为 iOS 7 的 Xcode 5 中将文件写入 AppSupport 文件夹时遇到问题。 我正在尝试做的事情:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES);
NSString *plistPath = [[paths lastObject] stringByAppendingPathComponent:@“somedata.plist”];
if(plistData) {
NSLog(@"PATH: %@", plistPath);
BOOL success = [plistData writeToFile:plistPath atomically:YES];
NSLog(@"SUCCESS: %hhd",success);
}
else {
NSLog(@"ERROR CREATING PLIST: %@",error);
}
我得到的输出是 NO:
PATH: /var/mobile/Applications/40954....7E3C/Library/Application Support/somedata.plist
SUCCESS: 0
Apple 文档说:
Use the Application Support directory constant NSApplicationSupportDirectory,
appending your <bundle_ID> for: …
附加您的 bundle_ID 是什么意思?可能有我应该使用的另一条路径吗? NSDocumentDirectory 不适合我,因为它是用户文件的地方。
最佳答案
存储到 NSApplicationSupportDirectory
比这复杂一点,
关注这个Apple sample code将文件写入此目录,
- (NSURL*)applicationDirectory
{
NSString* bundleID = [[NSBundle mainBundle] bundleIdentifier];
NSFileManager*fm = [NSFileManager defaultManager];
NSURL* dirPath = nil;
// Find the application support directory in the home directory.
NSArray* appSupportDir = [fm URLsForDirectory:NSApplicationSupportDirectory
inDomains:NSUserDomainMask];
if ([appSupportDir count] > 0)
{
// Append the bundle ID to the URL for the
// Application Support directory
dirPath = [[appSupportDir objectAtIndex:0] URLByAppendingPathComponent:bundleID];
//Modified code to write your plist file to the Application support dir
NSString *plistPath = [dirPath stringByAppendingPathComponent:@“somedata.plist”];
//Assuming plistData is pre-populated ivar
//Else add your code to create plistData here
if(plistData) {
BOOL success = [plistData writeToFile:plistPath atomically:YES];
NSLog(@"SUCCESS: %hhd",success);
}
else {
NSLog(@"ERROR CREATING PLIST: %@",error);
}
}
}
关于ios - 附加您的 <bundle_ID> 目录。它是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22015014/