我不知道从哪里开始,我真的疯了,所以让我们直接开始吧。我的应用程序有一个文件,在使用该应用程序时会变大。我不希望它在 iCloud 中备份,所以我使用以下部分来防止它:
// load file path
NSString *documentsPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, TRUE) objectAtIndex:0];
NSURL *dbPath = [NSURL fileURLWithPath:[documentsPath stringByAppendingPathComponent:@"database.db"]];
assert([[NSFileManager defaultManager] fileExistsAtPath:[dbPath path]]);
NSError *error;
[dbPath setResourceValue:[NSNumber numberWithBool:TRUE] forKey:NSURLIsExcludedFromBackupKey error:&error];
此代码仅适用于 iOS 5.1 或更高版本,但部署目标版本可以满足此要求。我的应用自今年 3 月起就在应用商店中。
现在奇怪的事情发生了:
我几个月没有在我的应用程序上工作,今天我想在模拟器中启动应用程序。开始出乎意料:我得到了
"Thread 1: EXC_BREAKPOINT (code=EXC_I386_BPT, subcode=0x0)"
在
CoreFoundation`CFHash:
[...]
calll 0x2dafa00 ; symbol stub for: getpid
追踪地址:http: //image-upload.de/file/Tf660h/b341100208.png
StackTrace 显示这发生在 [dbPath setResourceValue...] 中。尽管它被声明为断点,但由于标记的行,我无法运行该应用程序。
自上次提交应用商店以来,我没有更改任何内容,现在我无法启动它。在模拟器和我的设备上都没有。
如果我尝试使用 [dbPath getResourceValue...] 获取先前的标志值,则会发生同样的事情。我试图几个小时来了解发生了什么,但没有进展。