2016-01-10 2 views
0

в моем коде ниже,Xcode: CKAsset в CloudKit

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *localPath = [[paths objectAtIndex: 0] stringByAppendingPathComponent: @"temporary.png"]; 
    NSLog(@"local path=%@", localPath); 
    [UIImagePNGRepresentation(self.scriptPicture.image) writeToFile:localPath atomically:YES]; 
    //[opData.scripts writeToFile:localPath atomically:YES]; 
    if ([[NSFileManager defaultManager] fileExistsAtPath:localPath]) { 
     NSLog(@"file is exist"); 
     NSURL *fileurl=[NSURL URLWithString:localPath]; 
     CKAsset *myfile=[[CKAsset alloc] initWithFileURL:fileurl]; 
     //postRecrod[@"scriptPicture"]=myfile; 
     [postRecrod setObject:myfile forKey:@"scriptPicture"]; 
} 

ошибка будет происходить в строке "CKAsset *myfile=[[CKAsset alloc] initWithFileURL:fileurl];" сообщений об ошибке ниже:

Нагрузочного приложение из-за неперехваченное исключением ' NSInvalidArgumentException ', причина:' Нефайловый URL '

Я не знаю, как решить эту проблему arch web всю ночь напролет, но никакой помощи. Пожалуйста, помогите мне! Я начинающий код!

ответ

0

Я думаю, что ваша строка будет начинаться с файла: // могли бы попытаться изменить его на что-то вроде этого:

В Swift:

CKAsset(fileURL: NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("temporary", ofType: "png")!)) 
1

Вы строите fileurl неправильно.

Заменить строку:

NSURL *fileurl=[NSURL URLWithString:localPath]; 

с этим:

NSURL *fileurl=[NSURL fileURLWithPath:localPath]; 

Всегда используйте метод fileURLWithPath: создать файл URL из файла пути. Используйте URLWithString: при создании URL-адреса для строк, которые представляют собой правильный URL-адрес, начинающийся со схемы (например, http :, mailto :, и т. Д.).

Смежные вопросы