2017-09-20 5 views
1

Swift 3 앱을 4로 마이그레이션하면 Xcode에서 제 2의 기능 앞에 @objc을 추가하라고했습니다. 그리고 내가 그랬을 때 "@objc가 사용되지 않습니다"라는 경고를 표시합니다 스위프트 4에서 addTarget을 처리하는 데 더 좋은 솔루션이 있는지 궁금합니다. 여기Swift 4에서 UIButton에 액션 추가

enter image description here

내있는 UIButton입니다 :

let playButton: UIButton = { 
    let btn = UIButton(type: .system) 
    btn.setTitle("Play", for: .normal) 
    btn.setTitleColor(.green, for: .normal) 
    btn.addTarget(self, action: #selector(playTapped), for: .touchUpInside) 
    return btn 
}() 

FUNC :

@objc func playTapped() { 
     let path = AudioPlayerManager.shared.audioFileInUserDocuments(name: "test") 
    AudioPlayerManager.shared.playAudio(path: path) 
} 

이 가능 #selector와`@objc '를 사용하지 않고 버튼에 동작을 추가하는 방법?

감사합니다.

+0

가이 문제를 논의 게시물이 있으며, 그들 모두가 솔루션을 종료 사용 중지 된 경고는 비활성화됩니다. 그러나 'xcode'가 더 이상 사용되지 않으므로'@ objc '를 사용하지 않고 이것을 수행하는 새로운 Swift 4 방법이 있는지 궁금합니다. – sCha

+0

나는 이것에 관해 읽는 것을 기억한다. 그러나 나는 녹슨 편이다. '@ objc' 부분 만 제거하면 어떻게됩니까? –

+0

이 답변을 확인 했습니까 : https://stackoverflow.com/questions/45784758/programming-a-uibutton-is-not-working-in-swift-4-xcode-9-beta-6-cannot-add- targ # 45795626 – NSIceCode

답변

0

보십시오 다음되지 않습니다 빠른 4 빠른 3 @objc 인터페이스의 사용과 같은 명령

enter image description here

+3

이것은 http://evgenii.com/blog/disabling-swift3-objc-inference-in-xcode9/에서 속성이없는 스크린 샷이며 여기에 제안 된 것과 동일한 해결책입니다 : https://stackoverflow.com/a/44380886/ 1187415. –