我有一个带摄像头的应用程序拍摄视频,然后在UITableView
中有一个照片缩略图。对于每个单元格,分配一个URL,该URL是缩略图的相应视频。为此,我将视频和缩略图存储在Core Data中。我第一次创建视频时,它工作正常,但第二次,正在检索网址。
以下是保存视频的代码:
- (void) saveVideo {
NSManagedObjectContext *context = [self managedObjectContext];
FeedEntity *feed = [NSEntityDescription insertNewObjectForEntityForName:@"FeedEntity" inManagedObjectContext:context];
NSString *stringForSave = [self.videoURL absoluteString];
NSData * stringData = [stringForSave dataUsingEncoding:NSUTF8StringEncoding];
[feed setValue: stringData forKey:@"urlString"];
NSError *error = nil;
if (![self.managedObjectContext save:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
} else {
}
}
以下是我检索它的代码:
FeedEntity *feed = [_fetchedResultsController objectAtIndexPath:indexPath];
NSData *data = feed.imageData;
NSData *stringData = feed.urlString;
self.stringForURL = [[NSString alloc] initWithData:stringData encoding:NSUTF8StringEncoding];
self.stringForURL = [self.stringForURL stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
答案 0 :(得分:0)
如果您正在为数据模型中的属性选中“允许外部存储”,那么您应该将视频本身而不是URL保存到上下文中作为一个包位(即, NSData
)。当您选中“允许外部存储”时,您告诉Core Data它可以决定是否将大文件保存在持久存储内部或外部。您不需要自己持久化大文件。