2016-03-29 2 views
-1

Я использую этот library и все работало хорошо, прежде чем я обновлена ​​до стремительной 2.2быстры 2,2 непризнанного селектора отправляется например 0x7ff411c6ef90'

Первых предупреждений, которые я получил, что я должен был обновить свои селекторы к новому #selector который У меня есть.

Но теперь я получаю ошибку:

**Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Test.DOFavoriteButton select:]: unrecognized selector sent to instance 0x7ff411c6ef90'

Когда я смотрю в коде я нахожу эти функции:

public func select() { 
    select(true) 
} 

public func select(animate animate: Bool) { 
    selected = true 
    imageShape.fillColor = imageColorOn.CGColor 

    if animate { 
     CATransaction.begin() 

     circleShape.addAnimation(circleTransform, forKey: "transform") 
     circleMask.addAnimation(circleMaskTransform, forKey: "transform") 
     imageShape.addAnimation(imageTransform, forKey: "transform") 

     for i in 0 ..< 5 { 
      lines[i].addAnimation(lineStrokeStart, forKey: "strokeStart") 
      lines[i].addAnimation(lineStrokeEnd, forKey: "strokeEnd") 
      lines[i].addAnimation(lineOpacity, forKey: "opacity") 
     } 

     CATransaction.commit() 
    } 
} 

Если я правильно понимаю первый select() должен переключить одушевленные до true?

Но если я изменить его на:

public func select() { 
    selected = true 
} 

приложение будет работать без сбоев, но анимация не будет работать.

Так что же select(true) делать?

+1

Вам нужно указать код, в котором вы настраиваете '# selector'. Кроме того, любые другие методы называют 'select', потому что * этот * код даже не компилируется. (Вы должны были бы вызвать 'select (animate: true)') – nhgrif

+0

Он бы скомпилировал, 'UIResponder' имеет метод' select: ' – dan

+0

@dan. Предполагается, что этот код является частью класса, который наследует от' UIResponder' , Вероятно, это относительно безопасная ставка, но этот контекст здесь полностью отсутствует. Этот вопрос значительно отсутствует в деталях. – nhgrif

ответ

0

решаемые его путем добавления сигнатуры метода:

public func select() { 
    select(animate: true) 
} 

В противном случае объявление метода может быть изменен

public func select(animate: Bool)

Поэтому

public func select() { 
    select(true) 
} 

будет действовать для соответствия

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