保存核心数据Swift时显​​示指示符

时间:2015-07-16 03:20:16

标签: swift core-data xcode6 dispatch-async

我有一个按钮可以将图片数据保存在核心数据中,但是当我按下它时,由于数据的大小很大,所以它很冷。我确实尝试使用dispatch_async,但它没有用。如何创建图标/指示器,显示它正在加载/加入书签而不仅仅是冻结?

-(void)WriteToFile:(NSString*)fileName andString:(NSString*)array{
    NSString *filePath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.txt",fileName]];
    NSData *serializedData = [NSKeyedArchiver archivedDataWithRootObject:array];
    [serializedData writeToFile:filePath atomically:YES];
}

1 个答案:

答案 0 :(得分:1)

首先,保存不太可能是缓慢的。我怀疑你创建JPEG表示是缓慢的部分。

其次,你想通过设置一个微调器来隐藏问题。这真的对用户体验不利。更好地做以下(是的,它是更多的代码);

  1. 移动图像创建并保存到后台队列。
  2. 重构您的Core Data堆栈,以便保存到磁盘位于专用队列中。
  3. 这涉及在Core Data中使用后台队列和多个上下文,但从用户界面线程中获取此数据处理是正确的答案。