MOBILE (49) 썸네일형 리스트형 [iOS] UserDefaults와 커스텀 프로퍼티 리스트를 이용하여 데이터를 영구 저장하기 앱의 데이터는 실행 중에 메모리에 저장되지만 이는 휘발성이므로 앱을 종료하면 사라진다. 하지만 사라지지 않아야 하는 데이터는 어떻게 보관할 수 있을까? 예를 들면 메모장의 데이터나 일정과 같은 데이터들을 사라지지 않게 보관하는 방법에 대해 알아보자 코코아 터치 프레임워크는 다음과 같이 다양한 수준의 데이터 저장 방식을 제공한다. UserDefaults/ 커스텀 프로퍼티 리스트 : key-value 형태로 저장되는 간단한 데이터를 저장하는 방식 코어 데이터/ SQLite : 지속적으로 추가되거나 구조적으로 관리가 필요한 데이터를 저장하는 방식 아카이빙 (Archive) : 일반 데이터 타입으로 표현 불가능한 데이터를 저장하는 방식 즉 특정 순간 인스턴스 객체의 데이터 자체를 캡쳐하여 그대로 저장하는 방식이.. [swift] 클래스 상속과 초기화 메소드: 지정 초기화 메소드 vs 편의 초기화 메소드 swift에서의 상속과 초기화 메소드의 기본 swift에서 클래스 선언과 상속은 다음과 같은 형태로 이루어진다. 하지만 다음 코드는 오류를 발생시킨다. 왜 일까? 바로 초기화를 하지 않았기 때문이다. class A { var a: Int var b: Int } class B: A { var c: Int } 클래스에서 가장 중요한 것은 초기화이다. 물론 옵셔널 타입은 굳이 nil을 대입하지 않아도 자동으로 nil로 초기화를 해준다. 하지만 옵셔널 타입을 제외한 모든 저장 프로퍼티는 인스턴스가 생성되기 전에 무조건 초기화가 완료되어야 한다. 즉 다음 형태와 같아야 한다는 뜻이다. class A { var a: Int = 0 var b: Int = 0 } class B: A { var c: Int = 0 } .. [iOS] 화면전환 method present(_:animated:completion:) 의 비동기식 처리 ios에서 화면을 전환하는 방식은 여러가지인데 그 중에서 가장 classic한 방법은 바로 present 메서드를 사용하는 것이다. 화면 전환 스타일 중 "modally" 방식으로 화면을 전환해주며 view controller에 의한 화면 전환이다. "modal"이라는 것은 화면 외에 나머지 영역이 비활성화되어 사용자는 상호작용을 할 수 없는 방식을 말한다. (alert 중에서 .alert 형태의 사용자 알림창이 modal 형식이다.) 이때 중요한 것은 파라미터 중 completion 인데, 이는 화면 전환이 완전이 끝난 후에 실행될 코드를 보장해준다. 단순하게 present 메서드 뒤에 적히는 코드는 실행이 될지 안될지 보장해주지 않는다. 왜냐하면 화면 전환은 비동기로 이루어지기 때문이다. 따라서 화면.. [iOS] TextField.text는 nil이 되지도 않으면서 왜 optional일까 ios 개발에서 사용자의 text를 입력받는 swiftUI는 textField이다. 오늘 프로젝트 개발 중, textField 값이 없을 때와 초기 상황에서의 이벤트를 처리하기 위해 코드를 작성하고 있었는데 알 수 없는 부분을 발견했다. xcode에서 UIlabel의 text를 quick help로 살펴보면 다음과 같은 문서를 볼 수 있다. 즉, textField의 text는 분명 optional type으로 정의되어 있다. 정확하게 말하면 옵셔널 연산 인스턴스 프로퍼티이다. 그런데 문제는 text 속성은 기본으로 "" 빈 문자열을 return 한다는 것이다. 그렇다면 nil은 언제 반환되는 것일까? 1. 유저 입력이 없는 초기 상황 처음에 view가 load되고 textField의 text 값을 테스트.. [swift] PLS에서의 closure, swift에서의 closure swift는 함수형 언어이다. 함수형 언어라는 것은 함수가 일급 객체 (first-class object)라는 말이다. 그렇기 때문에 swift에서의 함수는 일급함수이며 일급 객체가 가지는 특성을 모두 가진다. 그렇다면 어떤 객체가 일등급이 되어 서울대에 갈 수 있는가(?) 일급 객체의 조건 1. 런타임에도 객체 생성 가능해야 함 2. 파라미터로 객체를 전달할 수 있어야 함 3. 반환값으로 객체를 전달할 수 있어야 함 4. 데이터 구조 안에 객체를 저장할 수 있어야 함 5. 할당에 사용된 이름과 관계없이 고유한 구별이 가능해야 함 swift에서의 함수는 다행히도 위의 조건을 모두 만족한다. 즉, 다음과 같은 코드들이 가능하다는 것이다. func function() { print("first class o.. [오류일기] NSException: this class is not key value coding-compliant for the key ___ ios ui kit을 다루던 중 빌드 오류를 발견했다. 빌드가 되다가 his class is not key value coding-compliant for the key 메세지를 띄우며 종료되는데 처음에는 코드의 문제인줄 알아서 코드를 계속 살펴보다가 도저히 답이 안나와서 찾아봤다. 결국 참조의 문제인 것이다.. 이 오류는 "내가 연결해둔 key ___ 를 찾을 수 없다"는 뜻인데, 따라서 왜 찾을 수 없는지 connection inspector를 살펴보면 된다 또는 객체를 오른쪽 클릭해서 inspector를 보면 됨 하..원인이 너무 어이없다. 처음에 outlet 변수 이름을 Img로 했다가 겹치는게 있어서 ImageView로 바꿨는데 참조는 여전히 Img로 하고 있으니 당연히 못찾는 거였다... 코드.. 42seoul 6기 1차 한달간의 La Piscine 후기 (+본과정 합격) 42seoul 6기 1차로 1/3~1/28까지 약 한달동안 La Piscine 과정을 진행했다. 정확하게 어제 끝났다.사실 라피신 전까지는 뭐 할만하겠지 했는데 그냥 나의 오산이었고요?총평을 해보자면 "하루 12시간의 코딩 폐관수련" 이다. 진심으로 일정이 많이 타이트하다. 월~목: 개인 과제 및 평가금: 정기 시험토~일: 팀 프로젝트마지막 주 특별 팀 프로젝트: bsq이렇게 매주 반복하게 되는데 진짜 힘들다... 하루에 12시간씩 코딩하고 꿈에서도 코딩하는 꿈도 꿨음주말? 없습니다. 휴일? 없습니다. 물론 내가 자체적으로 쉬면 그건 휴일이 됨. 아무도 강요 안함. 하지만 과연 그럴 수 있을까? ㅎㅎ팀 프로젝트와 bsq는 난이도가 상당하다. 과제 난이도는 C와 리눅스 시스템 프로그래밍 위주라서 그렇게 어.. Android Studio로 천문 현상 정보를 알려주는 앱 만들기 2021/09/01~2021/12/14 분명 api parsing을 가을에 했었는데 프로젝트는 겨울에 끝난 기묘한 이야기 1. Astro 🪐 울산에서 좀만 가면 경상남도에는 영남 알프스라는 산이 있다. 근데 이상하게도 거기 정상에는 뜬금없이 영화관이 하나 있다. 중학교 때 가족들이랑 심야영화를 보러 영남알프스 꼭대기에 갔었다. 근데 차에서 내리자마자 하늘에 별이 쏟아질 것 같다는 말이 무슨 뜻인지 그때 알게 되었다. 난 시티걸이었기 때문에 그런 별들을 처음 봤었다. 진짜 별이 엄청나게 많이 보이는데 책에서 봤던 알파별까지도 다 보여서 계절별 대별자리도 눈으로 볼 수 있을 정도였다. 그리고 난 그때의 기억이 너무 생생해서 아직까지도 그걸 다시 보기위해 살고 있을 정도이다. 하여튼 그때의 경험으로 내가 천문.. 이전 1 2 3 4 5 6 7 다음