Я создаю выход Collection ImageView и пользовательский класс «TTTImageView» для своих свойств. Я хочу добавить TapGestureRecognizer на всех ImageView, но я нашел эту ошибкуПолучение ошибки несоответствия типа при запуске этого кода в swift
«NSArray элемент не соответствовал Swift элемента массива типа»
Моего ViewController.swift класса выглядеть следующим образом:
import UIKit
class ViewController: UIViewController {
@IBOutlet var fields: [TTTImageView]!
override func viewDidLoad() {
super.viewDidLoad()
self.setUpLogic()
// Do any additional setup after loading the view, typically from a nib.
}
func setUpLogic(){
for index in 0 ... fields.count-1{
let gestureRecognizer = UITapGestureRecognizer(target: self, action: "fieldTapped")
gestureRecognizer.numberOfTapsRequired = 1
fields[index].addGestureRecognizer(gestureRecognizer)
}
}
func fieldTapped(recognizer:UITapGestureRecognizer){
var img = recognizer.view as TTTImageView
img.setPlayer("x")
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
и TTTImageView.swift является:
import UIKit
class TTTImageView: UIImageView {
var player : String = String()
func setPlayer(player : String){
self.player = player
if(player == "x"){
self.image = UIImage(named: "alphabet X")
}
else{
self.image = UIImage(named: "alphabet O")
}
}
}
Я думаю, что это проблема с типом, но не знаю, как ее решить. Пожалуйста, избавь меня от этой проблемы. Благодаря
какая линия эта ошибка происходит на? –
на этой линии. fields [index] .addGestureRecognizer (gestureRecognizer) –
Вы сделали чистую сборку? Не кажется неправильным с первого взгляда. – vrwim