• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    해결됨

LoginProject에서 경고문이 뜹니다.

24.02.26 19:48 작성 조회수 91

1

안녕하세요 좋은 강의 덕분에 공부하고 싶었던 ios에 대해서 잘 알아가고 있습니다 !

로그인프로젝트를 만들다가 보니 사진과 같은 경고문이 뜨는데 해석해보니 ViewController.self를 쓰라고 하는거 같더라구요
그래서 self대신 ViewController.self로 바꾸면 경고문은 없어지는데

스크린샷 2024-02-26 오후 7.42.08.png스크린샷 2024-02-26 오후 7.45.48.png이런 에러가 뜨면서 앱이 꺼집니다. 저 경고문은 그냥 무시하면 되는걸까요??

tf.addTarget(self, action: #selector(textFieldEditingChanged(_:)), for: .editingChanged)

그리고 이 줄에서 self는 ViewController를 가르키는게 아니라 텍스트필드를 가르킨다고 생각하는게 맞을까요??

답변 1

답변을 작성해보세요.

1

안녕하세요 주진 님.

저 오류의 경우, 컴파일러(엑스코드)가 잘못된 방향으로 오류를 잡아주고 있습니다.
ViewController.self라고 쓰시면 안됩니다. (self가 올바른 사용입니다.)

다만, 여기서 오류가 나는 이유는 textField의 선언을 private let으로 하셔서 그렇습니다.
private lazy var (지연 저장 속성)로 선언하셔야 올바른 방법으로 경고를 제거하실 수 있습니다.

let과 lazy var의 차이 때문에 그런 오류가 발생하는 것인데..
이 내용에 관련하여는 자주하는 질문에서 여러차례 말씀드리고 있으므로,
자주하는 질문을 꼭 참고해주시기 바랍니다. :)

자주하는 질문 정리 링크: https://bit.ly/3MR3Mr6


자주하는 질문에서 참고 부탁드리고, 혹시 자주하는 질문에서도 해결이 안되시면
다시 질문해주세요!

감사합니다. :)