본문 바로가기

iOS121

17, 평균 구하기 문제 설명 - 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. - 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다. 제한사항 - s는 길이 1 이상, 길이 8 이하인 문자열입니다. 나의 풀이 func solution(_ s:String) -> Bool { if s.count == 4 || s.count == 6 { let num = "0123456789" let without = s.filter { num.firstIndex(of: $0) != nil } return s.count == without.count } return false } 다른 사람의 풀이 func solution(_ s:Stri.. 2022. 6. 14.
Result타입 정의 - Result 타입은 Generic Enumeration으로 선언되어 있고, 경우에 따른 연관 값을 포함하여, 성공과 실패를 나타내는 값입니다. 선언 @frozen enum Result where Failure : Error 문제점 - Error Handler을 사용했을 때, Error와 Data를 인스턴스로 다루고 있지만, 런 타임에 error와 data의 값이 모두 nil일 수 있습니다. - 또 다른 경우로는 실제로 에러를 처리하기 위해 필요한 상태보다 더 많은 상태가 생겨 불필요한 상태를 추가로 처리해야 한다는 것입니다. 하지만 data와 error에 대한 에러 처리를 할 경우엔 총 4가지의 경우만 발생할 수 있습니다. Data = True , Error = False Data = True .. 2022. 6. 13.
접근 제어자의 종류 접근제어란? - 접근제어는 코드끼리 상호작용을 할 때 파일 간 또는 모듈 간에 접근을 제한할 수 있는 기능입니다. - 불필요한 접근으로 의도치 않은 결과를 초래하거나 꼭 필요한 부분만 제공을 해야하는데, 전체 코드가 노출될 가능성이 있을 때 접근제어를 이용합니다. 접근수준 - 접근제어는 접근수준 키워드를 통해 구현할 수 있습니다. - 각 타입에 특정 접근수준을 지정할 수 있고, 타입 내부의 프로퍼티, 메서드, 이니셜라이저에도 접근수준을 지정할 수 있습니다. - 접근수준을 명시할 수 있는 키워드는 open, public, internal, fileprivate, private 가 있습니다. 1, Open - 개방 접근수준 - 개방 접근수준은 공개 접근수준 이상으로 높은 접근수준이며, 클래스와 클래스의 멤버.. 2022. 6. 11.
16, x만큼 간격이 있는 n개의 숫자 문제 설명 - 함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. - 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요. 제한 조건 - x는 -10000000 이상, 10000000 이하인 정수입니다. - n은 1000 이하인 자연수입니다. 나의 풀이 func solution(_ x:Int, _ n:Int) -> [Int64] { var array = [Int64]() for i in 1...n{ array.append(Int64(x*i)) } return array } 다른 사람의 풀이 func solution(_ x:Int, _ n:Int) -> [Int64] { return Array(1... 2022. 6. 10.
NSCache와 NSDictionary의 차이를 설명하시오. NSCache와 NSDictionary의 차이점 1, 시스템 메모리를 과도하게 사용하지 않도록 삭제하는 정책에서 딕셔너리는 코드를 통해 메모리를 관리하지만, NSCache는 자동 삭제 정책을 통해 일부 항목을 제거해 메모리를 관리합니다. 2, NSDictionary에 비해 NSCache는 Thread-Safe 하게 구현되어 있어, 여러 스레드에서 접근할 때 lock을 걸어줄 필요가 없이 다른 스레드에서 캐시의 항목을 추가, 제거, 검색할 수 있습니다. 3, NSDictionary 객체는 동작 방식에 따라 Key로 사용되는 객체가 복사되지만, NSCache는 Key객체를 복사하지 않고 retain 카운트를 증가시킵니다. 정리 NSDictionary NSCache 메모리 부족 값을 삭제하는 코드 작성 자동 .. 2022. 6. 9.
NSCache NSCache class NSCache: NSObject where KeyType: AnyObject, ObjectType: AnyObject - Memory Caching에 사용되는 클래스로, 메모리에서 해제될 때 자동으로 캐시된 내용이 제거됩니다. - Thread-Safe 하기도 합니다. 따라서 여러 스레드에서 접근할 때에도 Cache에 lock을 걸어줄 필요가 없습니다. - Key-Value 형태의 데이터를 임시로 저장하는 데에 사용할 수 있는 가변 컬렉션입니다. NSCache의 주요 프로퍼티 var name: String 캐시의 이름 var countLimit: Int 캐시가 가질 수 있는 최대한의 객체 수 var totalCostLimit: Int 객체를 제거하기 전에 캐시가 보유할 수 있는 최.. 2022. 6. 8.