2016-03-29 77 views
-1

我用這library和一切工作罰款之前,我更新到2.2迅速SWIFT 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

您需要在您設置'#選擇器'的位置包含代碼。另外,你有任何其他方法名稱爲'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) 
} 

將是有效編輯

相關問題