"새로 고침하려면"문제가 있습니다. 신속한 3에서대상 선택기가 Swift3에서 작동하지 않습니다.
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Income.MainVC refresh:]: unrecognized selector sent to instance 0x7faf1040a9e0
"새로 고침하려면"문제가 있습니다. 신속한 3에서대상 선택기가 Swift3에서 작동하지 않습니다.
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[Income.MainVC refresh:]: unrecognized selector sent to instance 0x7faf1040a9e0
, 첫번째 파라미터 : 예외가 -
public func refresh(sender: AnyObject) {
updateData()
refreshControl.endRefreshing()
}
override func viewDidLoad() {
super.viewDidLoad()
[...]
refreshControl.addTarget(self, action: Selector(("refresh:")), for: UIControlEvents.valueChanged)
}
I 당겨 : I는 UIRefreshControl
타겟으로서 여기 아래에 설정하고, 내부 UITableView
와 UIViewController
사용하고 더 이상 기본적으로 무시되지 않습니다. 스위프트 2에서 새로 고침 방법 서명이 refresh(_:)
이고 이제는 refresh(sender:)
이므로 Selector("refresh:")
이 작동하지 않습니다.
첫 번째 매개 변수에 밑줄을 추가하여 func refresh(_ sender: AnyObject)
처럼 보이게하는 것이 좋습니다.
나는 또한 당신이 좋아 보일 것이다 새로운 선택기 구문을 사용하는 것이 제안이 #selector(refresh(_:))
당신이 (당신이해야) 새로운 선택기 구문 난 당신이 또한 첫 번째 인수를 유지할 수 있다고 생각하고 있습니다를 사용하는 경우 이 모양처럼 #selector(refresh(sender:))
튜토리얼 몇 읽기.
iOS10 UIRefreshControl
에서 TableViews에 추가되었습니다. 내 homeproject에 사용
간단한 코드 :
private let refreshControl = UIRefreshControl()
override func viewDidLoad() {
tableView.refreshControl = refreshControl
refreshControl.addTarget(self, action: #selector(ViewController.refreshData(sender:)), for: .valueChanged)
fetchFixtures()
}
func refreshData(sender: UIRefreshControl) {
fetchFixtures()
refreshControl.endRefreshing()
}
퍼펙! 정말 고맙습니다! – Jignesh
@odvan은 내가 당신의 모범을 보게 될 때까지 이걸 두 시간이나 보냈습니다. 감사@ –