Swift3 - result unused warning 없애기
Programming+= 연산자를 재정의하여 쓰는데 "Result of operator '+=' is unused" 라는 warning이 발생하여 이걸 없애는 방법을 좀 찾아보았다. 결론부터 말하자면, @discardableResult 을 함수 앞에 붙여주면 해결된다.
GLKit 모듈에 붙어있는 GLKVector3에 곱셈과 +=, -= 등의 연산자가 없어서 아래와 같이 연산자 재정의를 해 보았다.
근데 막상 이걸 사용하려 했더니, 아래와 같이 warning이 떴다. 무시해도 괜찮긴 하지만 영 찜찜하다.
관련해서 찾아보니, Swift 2점대 에서는 '@warn_unused_result' 라는 지시자가 있어서 리턴값을 사용하지 않으면 컴파일러가 warning을 내뱉게 하고 있었다. 즉, 이전까지는 기본적으로는 리턴값을 쓰지 않아도 warning이 뜨지 않았다는 말이다. 그리고 Swift 3점대에 오면서 이게 바뀌어서 리턴값을 쓰지 않으면 컴파일러가 warning을 내뿜도록 하고 있다.
unused warning을 없애기 위한 방법은 두 가지가 있다.
- @discardableResult 을 함수 앞에 붙여주거나,
- 함수(연산자) 호출 단에서 리턴값을 밑줄(_)에 할당하는 표현식을 쓰는 것이다. 즉, _ = self.position += self.front * velocity 요렇게 쓰면 되겠지.
참고: https://useyourloaf.com/blog/swift-3-warning-of-unused-result/
'Programming' 카테고리의 다른 글
macOS에 emacs ggtags 설치 및 설정 (0) | 2017.10.17 |
---|---|
Xcode에 assimp 올리기 (0) | 2017.06.06 |
OpenGL로 원 그리기 (1) | 2017.05.27 |
Swift - 튜플에 포인터로 접근하기 (0) | 2017.05.14 |
Unsigned Integer to String with Generics (0) | 2017.04.23 |