2015-04-21 2 views
0

Я создаю выход 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") 
    } 
} 

} 

Я думаю, что это проблема с типом, но не знаю, как ее решить. Пожалуйста, избавь меня от этой проблемы. Благодаря

+1

какая линия эта ошибка происходит на? –

+0

на этой линии. fields [index] .addGestureRecognizer (gestureRecognizer) –

+0

Вы сделали чистую сборку? Не кажется неправильным с первого взгляда. – vrwim

ответ

0

Может быть, что вы хотите это

@IBOutlet var fields: [TTTImageView!] 

вместо этого

@IBOutlet var fields: [TTTImageView]! 

?

Обратите внимание на размещение! персонаж.

Смежные вопросы