私はコンタクトブックを使ってアプリを開発しています。私はAPIからの通話履歴を表示しています。履歴データを表示すると、連絡先が連絡先の中にあるかどうかを確認します。利用可能な場合は、連絡先の名前と画像を表示します。 私はバックグラウンドでこのプロセスを行っていますが、時には、テーブルビューが固まっていて何の応答も出さない場合があります。 私は、上記のプロセスを実行するために、次のコードを使用しています:コンタクト画像をバックグラウンドで読み込むには?
for i in (0..<arrdata.count-1)
{
self.count = self.count + 1
let dict_data = arrdata.value(forKey: String(format: "%d", arguments: [i])) as! NSDictionary
let dict = NSMutableDictionary()
dict.setValue(dict_data["callstart"], forKey: "callstart")
dict.setValue(dict_data["notes"], forKey: "notes")
dict.setValue(dict_data["debit"], forKey: "debit")
dict.setValue(dict_data["pattern"], forKey: "pattern")
dict.setValue(dict_data["calltype"], forKey: "calltype")
dict.setValue(dict_data["billseconds"], forKey: "billseconds")
dict.setValue(dict_data["disposition"], forKey: "disposition")
dict.setValue(dict_data["callednum"], forKey: "callnumber")
DispatchQueue.global(qos: .background).async(execute:
{() -> Void in
let searchContact = Constants.appDelegate.searchForContactUsingPhoneNumber(phoneNumber: dict_data["callednum"] as? String) as [ContactEntry]
if searchContact.count == 1
{
for contact in searchContact
{
dict.setValue(contact.name, forKey: "callednum")
dict.setValue(contact, forKey: "historycontact")
if contact.image == nil
{
dict.setValue(nil, forKey: "contactimage")
}
else
{
let new_image = contact.image?.scaleUIImageToSize(image: contact.image!, size: CGSize(width:250,height:250))
let imgdata = new_image?.jpeg(.lowest)
dict.setValue(imgdata, forKey: "contactimage")
}
}
}
else
{
dict.setValue(nil, forKey: "historycontact")
dict.setValue(dict_data["callednum"], forKey: "callednum")
dict.setValue(nil, forKey: "contactimage")
}
})
dict.setValue(nil, forKey: "historycontact")
dict.setValue(dict_data["callednum"], forKey: "callednum")
dict.setValue(nil, forKey: "contactimage")
dict.setValue(dict_data["callerid"], forKey: "callerid")
self.arrHistory.append(dict)
}
DispatchQueue.main.async
{
self.tblview.reloadData()
}
は、バックグラウンドキューでは、私は可能な連絡先を確認したりありません。
私はバックグラウンドで連絡先の検索が必要で、メインスレッドのバックグラウンドとAPIコールでデータを設定する必要がありました。
上記の問題の解決策があれば、私に手伝ってください。
ありがとうございます。
ありがとうございました。私はあなたの解決策を試みます。 –