Ich versuche, Bilddateien herunterzuladen und in NSDocumentDirectory
zu speichern. Dazu muss ich die Datensicherung auf iCloud und iTunes abschalten. Hier sind meine Codes:CFURLSetResourcePropertyForKey Fehler beim Deaktivieren der Datensicherung auf NSDocumentDirectory
+(void)saveData:(NSData*)thedata:(NSString*)fileName
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *localFilePath = [documentsDirectory stringByAppendingPathComponent:fileName];
NSFileManager *fileManager = [NSFileManager defaultManager];
[fileManager createFileAtPath:localFilePath contents:thedata attributes:nil];
//prevent files from backup on iCloud or iTune
NSURL *fileURL = [NSURL URLWithString:localFilePath];
[self addSkipBackupAttributeToItemAtURL:fileURL];
}
und für meine addskipbackupattributetoitematurl:
+(BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)fileURL
{
if (![[NSFileManager defaultManager] fileExistsAtPath:[fileURL path]])
{
NSLog(@"File %@ doesn't exist!",[fileURL path]);
return NO;
}
NSString *currSysVer = [[UIDevice currentDevice] systemVersion];
if ([currSysVer isEqualToString:@"5.0.1"])
{
const char* filePath = [[fileURL path] fileSystemRepresentation];
const char* attrName = "com.apple.MobileBackup";
u_int8_t attrValue = 1;
int result = setxattr(filePath, attrName, &attrValue, sizeof(attrValue), 0, 0);
NSLog(@"Excluded '%@' from backup",fileURL);
return result == 0;
}
else if (&NSURLIsExcludedFromBackupKey)
{
NSError *error = nil;
BOOL result = [fileURL setResourceValue:[NSNumber numberWithBool:YES] forKey:NSURLIsExcludedFromBackupKey error:&error];
if (result == NO)
{
NSLog(@"Error excluding '%@' from backup. Error: %@",fileURL, error);
return NO;
}
else
{
NSLog(@"Excluded '%@' from backup",fileURL);
return YES;
}
}
else
{
return YES;
}
}
Allerdings erstellt das BOOL result = [fileURL setResourceValue:[NSNumber numberWithBool:YES] forKey:NSURLIsExcludedFromBackupKey error:&error];
die folgende Meldung
CFURLSetResourcePropertyForKey fehlgeschlagen, weil es diese URL übergeben wurde, die kein Schema hat : /var/mobile/Applications/CF69D567-1D37-4053-BFA8-5D0FCBD9C2B2/Documents/coffee.jpg
Ich frage mich nur, wenn dieses Problem aufgetreten ist ??
Hölle mit Apfel ... sie kehren nicht einmal einen Fehler auf dieser und das Ergebnis JA sein. Dies wird jedoch nicht den "ExcludedFromBackupKey" festlegen. Sie haben mich zweimal dafür zurückgewiesen :( –