我是Swift的新手!有人可以帮我解决这个错误!?
我的目标:
我想使用单元格进行表格查看,如果我点击一个单元格,则应该更详细地显示该单元格。 (某些变量和方法用荷兰语表示)
终端错误
发生的错误
这是我的视图控制器
import UIKit
import CoreLocation
import MapKit
class ViewController: UIViewController, MKMapViewDelegate, CLLocationManagerDelegate {
var dataVanPersoon = Persoon()
var locatieManager = CLLocationManager()
@IBOutlet weak var profielFoto: UIImageView!
@IBOutlet weak var lblNaam: UILabel!
@IBOutlet weak var lblAdres: UILabel!
@IBOutlet weak var mapView: MKMapView!
@IBOutlet weak var lblTelefoonNummer: UILabel!
@IBOutlet weak var lblGemeente: UILabel!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
locatieManager.requestAlwaysAuthorization()
locatieManager.startUpdatingLocation()
self.profielFoto.image = dataVanPersoon.image
self.lblNaam.text = dataVanPersoon.voornaam! + " " + dataVanPersoon.naam!
self.lblTelefoonNummer.text = dataVanPersoon.telefoon!
self.lblAdres.text = dataVanPersoon.adres.straat! + " " + String(describing: dataVanPersoon.adres.huisnummer)
self.lblGemeente.text = String(describing: dataVanPersoon.adres.postcode!) + " " + dataVanPersoon.adres.gemeente!
}
}
TableViewcontroller
import UIKit
class TableViewController: UITableViewController {
var personen = [Persoon] ()
override func viewDidLoad() {
super.viewDidLoad()
for persoon in SingletonVanPersoon.shared.returnPersonen(){
personen.append(persoon)
}
// Uncomment the following line to preserve selection between presentations
// self.clearsSelectionOnViewWillAppear = false
// Uncomment the following line to display an Edit button in the navigation bar for this view controller.
// self.navigationItem.rightBarButtonItem = self.editButtonItem
}
// MARK: - Table view data source
override func numberOfSections(in tableView: UITableView) -> Int {
// #warning Incomplete implementation, return the number of sections
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
// #warning Incomplete implementation, return the number of rows
return personen.count
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let persoon = personen[indexPath.row]
let cell = tableView.dequeueReusableCell(withIdentifier: "Cellperson", for: indexPath)
cell.textLabel?.text = persoon.voornaam
cell.detailTextLabel?.text = persoon.naam
cell.imageView?.image = persoon.image
return cell
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "toDetails"{
if let nextVC = segue.destination as? ViewController{
let indexPath = self.tableView.indexPathForSelectedRow
nextVC.dataVanPersoon = personen[(indexPath?.row)!]
}
}
}
我在“人物”中的单身人士
import Foundation
import UIKit
import MapKit
class SingletonVanPersoon{
static let shared = SingletonVanPersoon()
let adres1 = Locaties(Straat: "Diestsestraat", Huisnummer: 23, Postcode: 3000, Gemeente: "Leuven")
let adres2 = Locaties(Straat: "Bontgenotenlaan", Huisnummer: 44, Postcode: 3000, Gemeente: "Leuven")
let adres3 = Locaties(Straat: "Stationstraat ", Huisnummer: 324, Postcode: 3070, Gemeente: "Kortenberg")
let adres4 = Locaties(Straat: "Burgemeesterstraat", Huisnummer: 18, Postcode: 3000, Gemeente: "Leuven")
let coordinatesAdres2 = CLLocationCoordinate2D(latitude: 50.87984386, longitude: 4.70654357)
let coordinatesAdres1 = CLLocationCoordinate2D(latitude: 50.88131078, longitude: 4.70919665)
let coordinatesAdres3 = CLLocationCoordinate2D(latitude: 50.8884809, longitude: 4.5440286)
let coordinatesAdres4 = CLLocationCoordinate2D(latitude: 50.87542824, longitude: 4.71074274)
func returnPersonen() -> [Persoon]{
let personen = [Persoon(Naam: "Em", Voornaam: "Med", Telefoon: "049849384", Image: UIImage(named: "med")!, Adres: adres1, Coordinaat: coordinatesAdres1), Persoon(Naam: "Zaniyar", Voornaam: "Diyar", Telefoon: "03822393", Image: UIImage(named: "diyar")!, Adres: adres2, Coordinaat: coordinatesAdres2), Persoon(Naam: "Seyitxan", Voornaam: "Bahoz", Telefoon: "230329", Image: UIImage(named: "seyitxan")!, Adres: adres3, Coordinaat: coordinatesAdres3), Persoon(Naam: "Sadi", Voornaam: "Rashid", Telefoon: "03342334", Image: UIImage(named: "sadi")!, Adres: adres4, Coordinaat: coordinatesAdres4)]
return personen
}
}
TableviewCell
import UIKit
class TableViewCell: UITableViewCell {
@IBOutlet weak var profielView: UIImageView!
@IBOutlet weak var lblVoornaam: UILabel!
@IBOutlet weak var lblAchternaam: UILabel!
}
人员班
import Foundation
import MapKit
import UIKit
class Persoon: NSObject {
// Do any additional setup after loading the view.
var naam : String?
var voornaam : String?
var telefoon:String?
var image:UIImage
var adres : Locaties
var coordinaat : CLLocationCoordinate2D
override init() {
naam = ""
voornaam = ""
telefoon = ""
image = UIImage()
adres = Locaties()
coordinaat = CLLocationCoordinate2D()
}
init(Naam:String, Voornaam:String, Telefoon:String, Image:UIImage, Adres:Locaties, Coordinaat:CLLocationCoordinate2D) {
naam = Naam
voornaam = Voornaam
telefoon = Telefoon
image = Image
adres = Adres
coordinaat = Coordinaat
}
}