2016-09-21 52 views
0

我想將我的項目轉換爲Swift 3,並且獲得了大部分處理的bug,但我遇到了調用我的手勢識別器的問題。這裏是我的代碼:Swift 3轉換「沒有成員」的錯誤

func addGestureToView(toView: UIView) { 
    let gesutereUp = Init(UISwipeGestureRecognizer(target: self, action: #selector(DemoViewController.swipeHandler(_:)))) { 
     $0.direction = .Up 
    } 

    let gesutereDown = Init(UISwipeGestureRecognizer(target: self, action: #selector(DemoViewController.swipeHandler(_:)))) { 
     $0.direction = .Down 
    } 
    toView.addGestureRecognizer(gesutereUp) 
    toView.addGestureRecognizer(gesutereDown) 
    } 

    func swipeHandler(sender: UISwipeGestureRecognizer) { 
    let indexPath = NSIndexPath(forRow: currentIndex, inSection: 0) 
    guard let cell = collectionView?.cellForItemAtIndexPath(indexPath) as? DemoCollectionViewCell else { return } 

它給了我和錯誤,指出gestureUp和gestureDown都沒有「成員‘swipeHandler’」

而且該行「讓indexPath ......」我得到一個錯誤說'參數標籤'(forRow,在部分:)「不匹配任何可用的過載」

有人可以幫忙用Swift 3的轉換修復嗎?當我將這些線條評論出來時,所有這些都是最後的作品。提前致謝。

回答

1

替換選擇器中標籤sender的下劃線。

#selector(DemoViewController.swipeHandler(sender:)) 

關於索引路徑,在swift3新的方法是:

NSIndexPath(row: currentIndex, section: 0) 
+0

這幫助,但我仍然對indexPath行,一個新的錯誤。新的錯誤是「使用舊版swift語言版本是必需的」。我已經去了構建設置,並嘗試設置它,但沒有工作。有什麼建議麼? – user3255746

+0

檢查編輯的答案,爲傳統的支持,請參閱相關文章http://stackoverflow.com/questions/38446097/xcode-8-beta-3-use-legacy-swift-issue – xhamr

相關問題