私はXcodeとプログラミング言語が新しく、助けが必要です。メッセージアプリケーションで作業していて、Completion Handler Blockを使用できません。ここに私のコードは次のとおりです。Swift 3 Completion Handler Blockを正しく書き込む方法
@IBAction func SendButton(_ sender: AnyObject) {
if self.textfield.text != "" {
let mess = CKRecord(recordType: "Message")
mess["content"] = textfield.text as CKRecordValue?
let publicdata = CKContainer.default().publicCloudDatabase
publicdata.save(mess, completionHandler: {(record, error) -> Void in
if error == nil {
let indexpath = NSIndexPath(item: self.chat.count, section: 0)
CATransaction.begin()
CATransaction.setDisableActions(true)
self.CollView.performBatchUpdates ({
self.chat.insert(mess, at: self.chat.count)
self.CollView.insertItems(at: [indexpath as IndexPath])
}, completion: {(true) -> Void in
print("Animation completed")
self.CollView.contentOffset = CGPoint(x: 0, y: 40)
})
CATransaction.commit()
print("SAVED")
}else{
print("error")
}})
}
textfield.text = ""
}
私はperformBatchUpdatesにCATransaactionを使用していますが、performBatchUpdates方法で完了ハンドラブロックを完了することができません。ご覧のとおり、それを書くのは正しい方法ではなく、私はそれを知っていますが、私はそれを達成するために私が知っているすべてを試しましたが、そうはなりません。完了:
completion: {(true) -> Void in
print("Animation completed")
self.CollView.contentOffset = CGPoint(x: 0, y: 40)
})
私を助けてください。ありがとうございました !!
こんにちは、あなたが投稿することができ、あなたのpublicdata.save機能を試すことができますしてください – Makaille