분류 전체보기
[TIL] Swift. awakeFromNib
이번내용은 코딩을 하던 와중에 뷰 컨트롤러의 라이프 사이클에서는 볼수 없었지만 코드를 작성할때 셀의 UI를 변경하는 코드 등을 awakeFromNib에 작성하길래 무엇인지 궁금해서 공부하면서 정리해 보았습니다. awakeFromNib() 은 객체가 초기화(인스턴스화)된 후 호출된다. UIView에서 상속받은 커스텀 View클래스를 만들고 인터페이스 빌더에 지정하면(오른쪽 탭 inspector에서 지정하는 방법으로) 커스텀 클래스는 아카이브되어 있다가 언아카이브되게 된다.(xib파일에) 이때 init(coder:)가 호출되고 내부 속성이 초기화된다 일부는 이 때 의미없는 값으로 초기화되거나 IBOutler을 비롯한 객체 참조 관계가 불명확할 수 있다. init 시점에서는 frame과 관련된 크기, 위치 등..
Swift. 문자열 내림차순으로 배치하기
문제. 문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요. s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.제한 사항 str은 길이 1 이상인 문자열입니다. import UIKit func solution(_ s:String) -> String { let abc = "abcdefghijklmnopqrstuvwxyz" let lowercase = (s.filter { abc.firstIndex(of: $0) != nil}).sorted(by: >) let uppercase = (s.filter { lowercase.firstIndex(of: $0) == nil}).sorted(by: >) return ..
Swift. 3진수 뒤집기
문제. 자연수 n이 매개변수로 주어집니다. n을 3진법 상에서 앞뒤로 뒤집은 후, 이를 다시 10진법으로 표현한 수를 return 하도록 solution 함수를 완성해주세요. 제한사항 n은 1 이상 100,000,000 이하인 자연수입니다. import Foundation func solution(_ n:Int) -> Int { var str = String(n, radix: 3) var str2: String = "" for i in str.reversed() { str2 += String(i) } return Int(str2, radix: 3)! } 1. 진수 변환만 알고 있다면 간단하게 풀수 있는 문제였고, 숫자를 문자열로 변환할때는 옵셔널 타입이 아닌 문자열 타입으로 나왔지만 2. 애초에 표현식이..
[TIL] Swift. ViewController LifeCycle
1. Two types of view Controllers Content View Controllers 모든 뷰를 단독으로 관리 UIViewController, UITableViewController, UICollectionViewController등 Container View Controllers 자체뷰 + 하나 이상의 자식 뷰 컨트롤러가 가진 루트뷰 관리 컨터에너는 컨텐츠를 관리하는 것이 아니라 루트뷰만 관리하며 컨테이너 디자인에 따라 크기 조정 UINavigationController, UITabbarController, UIPageViewController 등 실질적으로 첫번째(1) 메인에서 두번째(2) 화면이 전환될때 일어나는 순서는 ViewWillDisappear(1) → veiwDidLoad..
Swift. 문자열 내 p와 y의 개수
문제. 대문자와 소문자가 섞여있는 문자열 s가 주어집니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 return 하는 solution를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다. 단, 개수를 비교할 때 대문자와 소문자는 구별하지 않습니다. 예를 들어 s가 pPoooyY면 true를 return하고 Pyy라면 false를 return합니다. 제한사항 문자열 s의 길이 : 50 이하의 자연수 문자열 s는 알파벳으로만 이루어져 있습니다. import Foundation func solution(_ s:String) -> Bool { let arr = Array(s.lowercased()) let p = arr.filter { ($..
Swift. 문자열 내 마음대로 정렬하기
문제. 문자열로 구성된 리스트 strings와, 정수 n이 주어졌을 때, 각 문자열의 인덱스 n번째 글자를 기준으로 오름차순 정렬하려 합니다. 예를 들어 strings가 [sun, bed, car]이고 n이 1이면 각 단어의 인덱스 1의 문자 u, e, a로 strings를 정렬합니다. 제한 조건. strings는 길이 1 이상, 50이하인 배열입니다. strings의 원소는 소문자 알파벳으로 이루어져 있습니다. strings의 원소는 길이 1 이상, 100이하인 문자열입니다. 모든 strings의 원소의 길이는 n보다 큽니다. 인덱스 1의 문자가 같은 문자열이 여럿 일 경우, 사전순으로 앞선 문자열이 앞쪽에 위치합니다. import Foundation func solution(_ strings:[Str..