본문 바로가기

공부28

iOS - Cannot find type '~~~' in scope 해결하기 사실 Cannot find type '~~~' in scope라는 에러는 그냥 '~~~'타입을 찾을 수 없다고 하는 매우 단순한 에러이다.하지만 아래의 상황은 다르다.'FBLPromise'와 같은 Objective-C로 짜여진 코드를 import할 수 없는 경우이다.얼마 전 애플에서 PrivacyInfo라는 걸로 개인정보 보호 관련 설정을 강제했다. 그래서 모든 프로젝트에 불러온 라이브러리, 프레임워크에 'Resource/'경로에 PrivacyInfo.xcprivacy 파일이 생겼다.finder에서 PrivacyInfo.xcprivacy를 검색하여 프로젝트 PrivacyInfo를 제외하고 전부 지우고 'tuist generate'명령어로 프로젝트를 재구성하니 문제가 해결되었다.이런 문제가 왜 발생했을까?.. 2024. 6. 26.
Android - findViewById vs kotlinx-synthetic vs viewBinding findViewById와 kotlin-synthetic의 문제점은 오래전부터 알려져 왔고 요새는 Compose를 쓰는 게 아니라면 거의 모든 프로젝트에서 viewBinding아니면 dataBinding을 쓴다.오늘은 findViewById와 kotlin-synthetic의 장단점과 왜 이걸 안 쓰고 viewBinding을 사용하는지 알아보자findViewByIdtextView = findViewById(R.id.textview)일단 코드가 길다. ‘R.id’라는 부분이 중복된다.하지만 더 치명적인 단점이 있는데 바로 null과 type 안정성이 없다는 것이다.null-safety 하지 않다R.id.OOO으로 view의 id에 접근을 하는 경우 해당 activity혹은 fragment에 대응되는 view .. 2024. 6. 19.
Python - for-else과 while-else문을 알아보자 이 글을 보고 들어오신 당신의 Python철학은 참으로 놀랍습니다. for-else문을 아는 사람을 거의 본 적이 없거든요. 대단한 호기심에 감탄을 표합니다. 짝짝그래서 for-else문과 while-else문이 뭘까?둘다 그냥 조건이 끝나면 실행되는 거다.아래 for-else문 같은 경우 리스트를 다 출력하면 ‘for 끝’이라는 문자열이 출력된다.for i in [1, 2, 3, 4, 5]: print(i)else: print("for 끝")아래는 출력 결과이다.12345for 끝아래 while-else문도 마찬가지이다. j j = 0while j 아래는 출력 결과이다.0123456789while 끝주의할 점break나 exit로 for, while문이 종료됐을 경우 실행이 되지 않으니 주의.. 2024. 6. 18.
Python - 멤버 변수를 출력하는 다양한 방법 Python에서 클래스의 멤버 변수들을 출력하는 방법들이 있다.보통 dir함수를 많이 사용한다.class MyClass: def __init__(self): self.a = 1c = MyClass()print(dir(c))하지만 출력결과를 보면 참담하다. 내가 만든 a라는 프로퍼티 외에도 다른 것들이 출력되고 있다.['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__re.. 2024. 6. 17.