ฉันกำลังพยายามลบแถวจากแหล่งข้อมูลและโค้ดบรรทัดต่อไปนี้:
if let tv = tableView {
ทำให้เกิดข้อผิดพลาดต่อไปนี้:
Initializer สำหรับการเชื่อมโยงตามเงื่อนไขต้องมีประเภทที่เป็นทางเลือกไม่ใช่ UITableView
นี่คือรหัสเต็ม:
// Override to support editing the table view.
func tableView(tableView: UITableView, commitEditingStyle editingStyle:UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) {
if editingStyle == .Delete {
// Delete the row from the data source
if let tv = tableView {
myData.removeAtIndex(indexPath.row)
tv.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade)
ฉันควรแก้ไขสิ่งต่อไปนี้อย่างไร?
if let tv = tableView {
variable with getter/setter cannot have an initial value
ซึ่งได้รับการแก้ไขโดยเพียงแค่ลบ {} บล็อกที่เหลือหลังจากการเริ่มต้นออกจากคำตอบนี้: stackoverflow.com/a/36002958/4544328
tableView
ไม่ใช่ค่าทางเลือกจึงไม่จำเป็นต้องตรวจสอบว่าเป็นศูนย์หรือไม่ ดังนั้นคุณสามารถใช้งานได้โดยตรงฉันหมายถึงลบสิ่งนั้นออกif let
และใช้tableView
ในฟังก์ชันเท่านั้น