복습키워드 : Reloading table views, Inserting rows, Text input in alerts, Strings and UTF-16, Closures, NSRange
도전과제
showErrorMessage()
을 호출하여 else
구문을 리팩토링하기weak
참조는 사용하기전에 언래핑을해야하고 unowned
참조는 바로 사용을 할 수 있습니다.isEmpty
는 count == 0
을 문자열의 모든 문자를 계산하는 도중 문자가 하나 이상 있다면 즉시 false
를 반환해서 속도가 더 빠릅니다.IndexPath
타입은 section
과 row
의 정수를 저장합니다.Strong reference cycles
는 메모리 누수가 발생하여 앱이 중단 될 수 있습니다.reloadData()
는 테이블의 모든 섹션과 행을 처음부터 로드합니다. numberOfRowsInSection
and cellForRowAt
를 포함해서 모든 테이블뷰 메서드를 다시 호출합니다.components(separatedBy:)
문자 기준으로 쪼갠결과값 [String]
타입을 반환합니다.grapheme clusters
로 문자열을 저장하고 Objective-C는 다른 방식으로 저장합니다.randomElement()
옵셔널요소를 반환합니다. (배열이 비어있을 수 있기 때문입니다.)URL
은 로컬파일 웹주소 모두 잘 작동합니다.NSRange
는 어떤 것의 위치(location)와 길이(length)를 저장합니다.Alert
창에 텍스트필드는 여러개 추가할 수 있습니다.guard var
변수생성, guard let
상수생성firstIndex(of:)
찾고있는 것이 없다면 nil
을 반환합니다.💡 유니코드 - Grapheme Cluster (static 블로그)