由于这个问题,我的申请被拒绝:
我的应用程序是一个使用 SQL DB 的字典,带有书签等...
所以我从 appDelegate.m 的 Apple 文档中复制了这段代码:
- (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL
{
assert([[NSFileManager defaultManager] fileExistsAtPath: [URL path]]);
NSError *error = nil;
BOOL success = [URL setResourceValue: [NSNumber numberWithBool: YES]
forKey: NSURLIsExcludedFromBackupKey error: &error];
if(!success){
NSLog(@"Error excluding %@ from backup %@", [URL lastPathComponent], error);
}
return success;
}
但像这样使用:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[self addSkipBackupAttributeToItemAtURL:[NSURL URLWithString:@"<myApplication>/Library/Caches"]];
}
但由于这个原因崩溃:
断言失败:([[NSFileManager defaultManager] fileExistsAtPath: [URL path]]),函数 -[AppDelegate addSkipBackupAttributeToItemAtURL:],文件 /iData/Development 2011/My iPhone Project/APPNAME/APPNAME/AppDelegate.m,第 27 行。
根据那张照片,这是我唯一拒绝的问题吗?因为这是我第一次使用数据库。
谢谢 。~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
编辑:
- (NSString *) getDBPath
{
NSInteger kValue = [[[NSUserDefaults standardUserDefaults] stringForKey:@"Bv"] intValue];
NSString *documentsDir = [[NSString alloc] init];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory , NSUserDomainMask, YES);
documentsDir = [paths objectAtIndex:0];
switch (kValue) {
case 0:
documentsDir = [NSString stringWithFormat:@"%@/eng-per.sqlite", documentsDir];
break;
case 1:
documentsDir = [NSString stringWithFormat:@"%@/eng-per.sqlite", documentsDir];
break;
case 2:
documentsDir = [NSString stringWithFormat:@"%@/per-eng.sqlite", documentsDir];
break;
}
return documentsDir
}
然后在 app delegate.m 中改为:
[self addSkipBackupAttributeToItemAtURL:[NSURL fileURLWithPath:dbClass.getDBPath]];
现在应用程序午餐很好,没有崩溃