본문 바로가기

공부/iOS

[오류] Access to UITextField's _placeholderLabel ivar is prohibited. This is an application bug

애플 로그인을 사용하기 위해서 xCode 버전을 10.2에서 11.2로 올리는 도중에 발생한 오류입니다.

 

 

 

 

응?? 잘은 모르겠지만 UITextField's _placeholderLabel 에 엑세스 하려고 했고 그건 금지라는 것같다.

 

해당 화면 storyboard를 찾아가보았다.

 

음.. UITextView이고, 특이한건 없네.. 

그래도 PlaceHolder 문제라고 했으니까 우측에 PlaceHolder를 삭제해보자.

 

빌드 후 테스트해보니까 잘 작동한다.

 

 


오류는 처리되었는데 찝찝하다... 왜 오류가 발생했을까?

 

그러고 보니까 storyboard에서 UITextView인데도 우측에 PlaceHolder 입력칸이 있는 이유는 UITextView+Placeholder 라이브러리를 사용해서 그런건데 그것때문같다.

 

Pod에 있는 UITextView+Placeholder.m 파일을 한번 볼까?

 

_placeholderLabel에 엑세스 하려고 했는데 금지라고 했었지?? 한번 검색해보자.

 

 

찾았다. 소스를 보아하니 UITextField의 Placeholder 색을 얻으려고 하는 코드구나.

그런데 이제는 엑세스를 못하니까 크래시가 발생했구나.

 

 

2020.02.05일 기준으로는 벌써 UITextView+Placeholder 라이브러리에 수정이 되어있습니다.

제가 사용하는 버전은 1.2 버전이였고 현재는 1.4버전 이상입니다.

오류 찾아서 오픈소스에 한번 기여해볼라고 헐레벌떡 github에 갔는데 이미 고쳐져 있네요 ㅠㅠ 역시 빠르십니다.

 

UITextView+Placeholder github 주소는 아래와 같습니다.

https://github.com/devxoul/UITextView-Placeholder