gpt4 book ai didi

ios - removeFromSuperview() 耗时太长

转载 作者:搜寻专家 更新时间:2023-11-01 07:31:55 27 4
gpt4 key购买 nike

在使用 imagePickerController 选择图像后,我尝试使用 Core Data 从我的 ViewController.swift 中保存一个对象。我在保存时显示带有微调器的 View (DynamicView)。对象在 1 或 2 秒内保存,但 DynamicView 需要 7 或 8 秒才能从 superView 中删除。

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [NSObject : AnyObject]){
dismissViewControllerAnimated(true, completion: nil)
picture = info[UIImagePickerControllerOriginalImage] as? UIImage
view.addSubview(DynamicView)
var newImageData = UIImageJPEGRepresentation(picture, 1)
objectToSave?.photo = newImageData
progressBarDisplayer("test", true)
dispatch_async(dispatch_get_global_queue(
Int(QOS_CLASS_USER_INTERACTIVE.value), 0)) {
self.save()
}
}

func save() {
var error : NSError?
if(!managedObjectContext!.save(&error) ) {
println(error?.localizedDescription)
}else{
println("No error, saved")
self.DynamicView.removeFromSuperview()


}
NSNotificationCenter.defaultCenter().postNotificationName("load", object: nil)
}

最佳答案

从主线程调用 removeFromSuperview() 以确保您的 UI 是同步的:

func save() {
var error : NSError?
if(!managedObjectContext!.save(&error) ) {
println(error?.localizedDescription)
}else{
println("No error, saved")
dispatch_async(dispatch_get_main_queue(),{
self.DynamicView.removeFromSuperview()
}


}
NSNotificationCenter.defaultCenter().postNotificationName("load", object: nil)
}

关于ios - removeFromSuperview() 耗时太长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32095264/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com