연산 프로퍼티를 사용해서 뷰컨트롤러에서의 코드 줄임. 수정 전 struct Status: Codable { var level: Int var food: Int var water: Int } 수정 후 struct Status: Codable { var food: Int var water: Int var typeNumber: String = "0" // 다마고치별 이미지 앞 숫자 var level: Int { get { let exp = (Double(food) / 5) + (Double(water) / 2) switch exp { case 0..
인스턴스 프로퍼티 vs 타입 프로퍼티 구조체, 클래스의 타입에 대해 인스턴스가 생성되었을때 사용이 가능한 것을 인스턴스 프로퍼티 인스턴스 프로퍼티는 인스턴스별로 다른 값을 가질 수 있음. 하지만 타입 프로퍼티는 타입 자체에 속하는 프로퍼티로, 인스턴스가 아무리 많아도 값은 하나. -> 즉, 인스턴스와 무관. 저장 프로퍼티 주로 값을 저장하기 위한 목적으로 클래스나 구조체 내에서 정의된 변수나 상수 열거형은 인스턴스를 생성할 수 없으므로 저장 프로퍼티를 가질 수 없음. 클래스의 경우, 반드시 프로퍼티에 값을 초기화해야함. 지연 저장 프로퍼티 인스턴스가 생성되어도 호출하지않는다면 초기화되지않음. lazy를 이용해 선언하는데 반드시 var여야함. 타입 저장 프로퍼티 저장 프로퍼티를 static을 붙여서 선언하..
키보드에 뷰 가려지는 현상 어제 NotificationCenter를 이용해 키보드가 올라오는 것을 감지하여 뷰를 올려주어서 해결했음. 근데 addObserver만 하고 빌드를 해보니 이후의 다른 화면에서도 키보드가 올라가면 선언해준 함수가 실행됐음. 검색해보니 removeObserver를 호출하여 더 이상 이벤트를 받지 않도록 해야했음. 메인화면에서만 필요했으므로 메인화면이 나타날때 addObserver를 하고, 사라지기 전에 removeObserver를 하기로함. Xcode 단축키 -> 따로 정리 .app 번들 파일 만들기 일단 앱 번들 파일을 저장하기 전에 빌드가 되어있어야함. 빌드를 했다면 File - Project Setting에서 아래의 버튼을 누름. 안에서 DerivedData - 원하는 앱 ..
코드 라인 변경 Option + Command + [ ] ([는 위로, ]는 아래로) 한 번에 여러 줄에 코드 작성 Control + Shift + 마우스 클릭 클래스 멤버와이즈 초기화 구문 구조체와 클래스의 다른 점 중 하나인 멤버와이즈 구문을 클래스에서도 자동완성 시킬 수 있음. 클래스의 이름인 Hee를 선택하고 Editor - Refactor - Generate Memberwise Initializer 커서 찾기 Option + Command + L 라인 검색(몇번째 줄 코드를 확인할지) Command + L 에디터 분리 Option + 원하는 파일 코드 동시 수정 바꿀 함수 앞에 커서 올리고 Control + Command + E 주석 작성 //MARK: 을 이용하면 아래처럼 목록에서 찾을 수 있..
네비게이션 타이틀 색 변경 navigationController?.navigationBar.titleTextAttributes = [.foregroundColor: UIColor.sesacBorder ] definition을 보면 font, textColor, shadow를 설정할 수 있다고함. NSAttributedString.h 안에 foregroundColor같은 특성들이 들어있는 것 같음. Key로 접근해서 사용 Separator 색상 변경 tableView.separatorColor = .red separator의 색을 변경하면 네비게이션바 아래에도 separator가 있어 같이 색이 변함. -> 네비게이션 바 아래 색을 변경하고 싶을땐 위 코드 사용하면 될듯 rootViewController를..
- Total
- Today
- Yesterday