尝试使用循环一次更新300个以上的联系人时,CNMutableContact内存的MutableCopy泄漏

问题描述

我遇到了一次更新300个以上联系人的问题。当我尝试将可变接触图像(它是真实接触)更新为可变标记时,会发生内存泄漏。

RAM使用量增加到1.4GB,然后应用程序增加容量。这是我的代码。

if let mutableCopy = contact.mutableCopy() as? CNMutableContact {
                                                                
    ImageDownloader.default.downloadImage(with: URL(string: thumbnailImageURL)!) { result in
                                    
      switch result {
         case .success(let value):
              queue.sync {
                     SVProgressHUD.show(withStatus: "loading 1")
                     //mutableCopy.imageData = compressedImage?.pngData()
                     mutableCopy.imageData = value.image.pngData() //self.returnCustomSizeImage(image: value.image).pngData()
                     mutableCopy.givenName  = givenName
                     mutableCopy.phoneNumbers = [CNLabeledValue(label: self.responsedContactsArray[index2].label ?? "NO DOB",value: CNPhoneNumber(stringValue: "\(trimmedPhoneNumber)"))]
                                            
                    //mutableCopy.familyName = "??‍?"
                    saveRequest.update(mutableCopy)
                                            
                      do {
                           try AppDelegate.mContactStore.execute(saveRequest)
                          } catch let error {
                                 SVProgressHUD.dismiss()
           }
         }

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)