반응형 swift43 fileManager tmp directory of files delete, stack-logs.xxxx.... 앱을 개발하면서 지속적인 테스트를 진행하다 보니 갑자기 폰에서 용량이 없다는 알림이 떠고 더 이상 앱이 설치 되지 않았다. 설정의 아이폰 용량을 확인해보니 개발중인 앱의 용량 중, 문서 및 데이터의 용량이 20기가 넘어있었다. 설치된 앱의 컨테이너를 다운로드하여 패키지 안을 보니 tmp디렉토리에 알수없는 로그 파일이 잔뜩 쌓여있어 이를 삭제하는 로직을 추가하게 되었다. 근본적인 원인은 누가 쌓고 있는지 모르겠으나, 설사 안다고 해도 라이브러리거나 SDK거나 일게 뻔하디 뻔하여 그냥 앱 시작 시점, 백그라운드 들어가는 시점 등에서 tmp디렉토리의 파일을 삭제하는 함수가 불려지도록 구현을 했다. 따라서 해당 함수를 기록해 둔다. /// 템프폴더의 파일을 삭제 private func clearTmpFolerO.. 2021. 11. 30. UITableView Grouped 스타일의 헤더 안보이게 처리 UITableView를 가지고 화면을 만들다 보니, 여지껏 알지 못했던 여러가지 설정이나 값들이 있다는 사실을 알았다. 테이블뷰의 스타일을 Grouped로 설정을 하고 tableView의 heightForHeaderInSection의 리턴값을 보통 0으로 리턴을 했지만 결과는 원하는 형태가 아니었다. 인터넷을 찾아보니 나와 비슷한 고민을 한 사람들이 있는 듯 하다. heightForHeaderInSection 의 리턴 값을 0이 아닌 CGFloat.leastNormalMagnitude를 반환하도록 하면 헤더의 높이가 없는 상태로 보여진다. Plain모드에서는 해당 사항이 없고 Grouped 스타일에서 해당되는 내용이다. 오랜만에 포스팅을 올린다. 일이 좀 정리가 되면 여러가지 유용한 정보들을 정리해서 올.. 2021. 11. 12. Swift 제네릭 함수, 제네릭 타입 제네릭은 중복을 피하면서 매우 유연하고 재사용이 가능한 코드를 작성할 수 있게 해 준다. 스위프트 언어에서 제네릭은 옵셔널의 예로 사용 된다. 옵셔널 타입은 두 개의 사용 가능한 값인 None과 Som(T)로 이뤄진 열거형으로 정의돼 있으며, 여기서 T는 적절한 타입의 연관 타입을 나타낸다. 옵셔널에 nil을 대입하면 None 값을 갖게 되고, 옵셔널에 어떠한 값을 대입하면 적절한 타입의 연관 값을 갖는 Some 값을 갖게 될 것이다. enum Optional { case None case Some(T) } T는 옵셔널과 연관된 타입, 플레이스홀더인 T는 제네릭을 정의하는데 사용한다. 제네릭을 사용해 중복을 피하는 예는 다음과 같다. 두 변수의 값을 교환하는 함수를 만들고자 할 때 여러 타입(Intege.. 2021. 7. 15. Swift Protocol Extension 예제와 사용 절차 책의 예제 코드를 기반으로 프로토콜을 선언하고 확장하며, 프로토콜을 따르는 타입(클래스, 구조체)에서 사용하기까지에 대해 간단하게 나열을 한다. protocol TextValidation { var regExFindMatchString: String {get} var validationMessage: String {get} } protocol을 정의하면서 프로퍼티 2개를 정의했다. 다음은 프로토콜을 확장하면서 1개의 연산프로퍼티와 2개의 메서드를 확장(추가) 정의한다. extension TextValidation { var regExMatchingString: String { get { return regExFindMatchString + "$" } } func validateString(str: Str.. 2021. 7. 14. Swift 정규 표현식 규칙에 대한 이야기 정규식 abc 의 경우 xyzabcxyzbc 일 때 문자열 abc와 일치한다. 정규식 12345의 경우 1234567890에서 문자열 12345와 일치한다. 꺽쇠 괄호 ([])를 사용하면 문자 집합(character sets)을 정의할 수도 있다. 문자 집합은 집한 안에 있는 문자와 문자열에 있는 하나의 문자와 일치할 것이다. 집합을 정의하기 위해서는 문자열을 사용하거나 범위를 명시하기 위해 - (마이너스 기호) 연산자를 사용할 수 있다. 정규식 [abc] 의 경우 xyzabcxyz 에서 abc집합에 있는 문자와 일치한다. 정규식 [a-zA-Z]의 경우 xyzabcxyz에서 소문자 또는 대문자에 일치한다. 반복 횟수를 명시하기 위해서는 중괄호({})를 사용해 하나 이상의 문자를 일치시킬 수 있다. {2,.. 2021. 7. 14. UILabel Size Animation With layer.anchorPoint UILabel의 font사이즈를 줄이는 애니메이션은 일반적인 UIView애니메이션으로 한계가 있는 듯 하다. UILabel의 스케일을 줄이면서 앵커포인트를 맞추면서 좌측 정렬상태에서 늘어나고 줄어드는 예제 코드인데 내 경험으로 판단할 때 오토레이아웃이 잡힌 경우라면 Constraint를 잘 설정해주어야 할 것 같고 그러지 않을 경우는 아예 제약을 다 클리어 한다음에 애니메이션 행위에 집중하는 것이 좋을 것 같다. 소스는 간단하다. self.lblName.sizeToFit() self.lblName.layer.anchorPoint = CGPoint(x: 0, y: 0) self.lblName.layer.position = CGPoint(x: 14, y: 8) UIView.animate(withDuratio.. 2021. 7. 5. 이전 1 2 3 4 5 ··· 8 다음 반응형