我被困在一次更新 300 多个联系人的问题上。当我尝试将真实联系人的 mutablecontact 图像更新为 mutablablecopy 时,发生内存泄漏。
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()
}
}
Run Code Online (Sandbox Code Playgroud) “我正在尝试在我的相机应用程序中创建连拍功能,并想将连拍图像保存到照片库中。到目前为止,我通过长按拍摄按钮获得了一系列图像?”
swift ×2
arrays ×1
avcapture ×1
avfoundation ×1
contacts ×1
ios ×1
memory-leaks ×1
mutable ×1
save ×1