본문 바로가기

전체 글

(99)
[iOS] perfromSegue segue의 identifier를 실행시킨다. 라고 생각하면 편합니다.. 위와 같이 선언할 수 있습니다. 또한 parameter로 identifier와 sender를 받는데. identifier는 segue의 identifier를 입력하고 sender는 segue를 통해 전해줄 인자를 적습니다. 일단 우리 세그친구는여 viewController를 control누르고 다른 viewController로 마우스로 드래그하면 생깁니다.! 이렇게 다양한 종류들이 있습니다. 또한 segue를 누르고 attributes inspector를 눌러서 identifier를 설정 해 줄 수 있습니다. ㅎ 이렇게 performSegue로 다른 뷰로 넘어가면 prepare함수가 실행됩니다. performSegue의 sender..
[iOS] 간단한 메모리 구조 - remind 프로그램이 RAM에 올라가서 프로세스가 됩니다.! 그래서 갑자기 메모리 영역을 알아보겠습니다. ㅎ 메모리는 크게 코드 영역, 데이터 영역, 힙 영역, 스택 영역이 있습니다. 코드 영역 작성한 소스코드가 기계어로 저장되며 read only이다. 데이터 영역 전역변수 static 변수가 저장된다. 프로그램 시작시에 메모리가 할당되고 프로그램 종료시 메모리가 해제된다. 실행도중 값 변경이 가능 read write 힙 영역 c언어에서 malloc을 써주듯이 동적 할당이 가능한 메모리 영역입니다. 할당된 데이터를 사용후 메모리 해제를 해주지 않으면 memory leak이 발생합니다. 런타임 하고 있을 때에도 데이터를 크기에 제한 없이 자유롭게 사용가능합니다. iOS에서는 클래스나 클로저같은 참조 타입의 값에서 사..
[Swift] struct, class - remind struct와 class structure - value 타입 - stack영역에 저장 스위프트는 대부분 struct로 이루어져있다. 일단 struct로 만들고 추후 클래스로 포팅이 쉽기 때문에.. 상황에 따라 바꾸는 것도 좋다. class - reference 타입 - heap영역에 저장 - 상속 가능 class의 데이터 자체는 heap에 저장되있지만 저장되 있는 heap주소를 stack영역에서 부름 ! (참조 타입!! C언어의 포인터를 이렇게 발전시킨거구나 싶어서 재밌다.) 하나의 객체가 필요하고 여러 대상에 의해 접근되고 변경이 필요한 경우 사용. remaind 후기 최근 OS공부를 했어서 그런지 메모리 관리하는 부분이 뭔가 재밌어서 remind했습니다. ㅎ
[Swift] Completion, Closure Excaping Completion Completion, CompletionHandling, CompletionBlock로 된 파라미터 이름을 iOS를 하면 많이 접합니다. 이러한 파라미터 들은 Closure를 파라미터로 받으며 함수가 반한된 후 (끝나고) Closure를 실행 시킵니다. Closure Escaping 추가적으로 Completion을 쓸 때 Escaping을 쓰기도 합니다. Closure 타입 앞에 @escaping 이라고 적으면 됩니다. 함수가 반환된 후 실행되는 Closure. 함수의 Scope를 벗어나 외부에서 사용 가능합니다. (ex: 함수 내부에서 만들어진 Closure를 함수 외부에 따로 만든 배열에 넣고 추후 함수 외부에서 배열을 사용해서 함수 내부에서 만든 Closure를 사용 가능.) +..
[Swift] First Class Type First Class Type - 변수에 할당할 수 있다. - 인자로 받을 수 있다. - 리턴 할 수 있다. - 비교 연산 할 수 있다. (Swift에서 권장 안함) 우리가 사용하는 대부분의 변수들은 First Class Type이며 함수나 클로져 또한 First Class Type이다.
[Swift] Where, Switch, Binding 평소에 안쓰던 문법들을 다시 보면 되게 새롭습니다. 그중 Where문을 간단히 공부해보겠습니다. Where where문은 크게 2개로 쓰입니다. 1. for문 while문 switch문등에서 조건을 추가하여 나타낼 수 있습니다. 2. 그리고 프로토콜의 extension같은 타입에도 조건을 추가할 수 있습니다. 간단한 예시를 보면 위와 같은 for문에서 where이 없다면 1부터 10까지 출력하게됩니다. 하지만 where 절에 i % 2 == 1 즉 홀수 일 때 true가 되는 조건이 추가가 되어서 10까지의 홀수만 출력이 됩니다. 이렇게 코드의 길이를 단축 시킬 수 있습니다.! switch문의 case에도 where문을 넣을 수 있습니다. 맨 위의 case는 wildcard를 쓰며 where 절의 num..
[iOS] Xcode Preview기능 Storyboard의 Preview 최근 iOS를 공부하던 중 Xcode의 preview기능을 발견했습니다. preview기능은 여러 기종의 View를 화면 측면에 보여줘서 기종에 맞는 Autolayout을 확인하기 쉽습니다. (아니 왜 이걸 아직까지 모르고 있었지.. 아니 알고 있었는데 까먹은건가 ..) Preview의 위치 1. Preview는 Storyboard에서 오른쪽 위를 보면 저 가로로 줄쳐져있는 버튼을 누릅니다. 2. Preview를 누릅니다.. 끝. + 단축기는 스토리보드에서 옵션 + 커맨드 + 엔터 "마주친42" 앱의 검진 자 이제 "마주친42"앱에서 부족한 오토레이아웃 설정을 찾아 볼까요.. 자! 아무것도 없는 Preview화면에서 좌측 하단의 +를 눌러주게되면 여러 기종들을 선택할 ..
[iOS] UIAlertController 알림이랄까. 알람이랄까. UIAlertController 사용자에게 알림 메시지를 보여주는 객체입니다. 위의 그림과 같이 알림창을 사용자에게 보여줄 수 있어요!! UIAlertController는 UIViewController를 상속 하고 있습니다. addAction으로 액션을 추가할 수 있고. present(animated:completion)으로 나타낼 수 있습니다. 위에 만든 알람의 코드입니다. 버튼을 눌렸을 때 실행되도록 했습니다. 각각 코드에 대해 알아볼까요! 1. 먼저 UIAlertContriller클래스의 인스턴스를 초기화 합니다. title - 알림의 제목 message - 알림을 사용자에게 보여준 이유 preferredStyle - actionSheet, alert 두개의 스타일이 있습니다. 2. UIAlertA..