목록분류 전체보기 (166)
아요 개발 일기
안녕하세요! 오늘은 Simulator에 키보드 띄우는 법을 알아보겠습니다 :D 아주아주 간단해요ㅎㅎ 일단 시뮬레이터를 띄우고, 상단 메뉴로 가볼까요?? I/O 메뉴를 누른 후, keyboard를 선택 -> Toggle Software Keyboard 를 눌러주면 됩니다!! 만약, 메뉴 누르기 번거로우면 cmd + k 를 누르면 해결됩니당 ㅎㅎㅎ
안녕하세요!오늘은 ARC를 공부하기위해! 기반 지식인 메모리 구조에대해서 공부해보겠습니다!!어느 언어든 꼭 필요한 부분이기때문에~ 열심히 정리해보겠습니다 :D Memory ?? 🤔 프로그램이 실행되면운영체제(OS)는 메모리(RAM)에 이 프로그램을 위한 공간을 할당해 줍니다.공간은 총 4가지 (Code, Data, Heap, Stack)으로 나뉘어져 있습니다. 자, 이제 각 영역이 어떤 역할을 하는지 하나씩 알아볼까요?ㅎㅎ 1. 코드(Code) 영역 이 영역에는 실행할 프로그램의 기계어(2진수) 코드가 저장됩니다.쉽게말하면, 프로그램의 명령어들이 저장되는 곳이죠!해당 영역은 중간의 코드가 변경되는 것을 방지하기 위해 읽기 전용(Read - Only) 형태로 저장됩니다. 2. 데이터(Data) 영..
안녕하세요 ㅎㅎ 오늘은 Closures에대해 알아보도록하겠습니다 :) 해당 글은 Closures 클로저는 코드 블럭으로 C와 Objective-C의 블럭(block)과 다른 언어의 람다(lambdas)와 비슷합니다. (익명 함수 = 람다 함수) 즉, 자신이 정의되었던 문맥으로부터 모든 상수와 변수의 값을 캡쳐하거나 레퍼런스를 저장하는 익명함수라고 할 수 있습니다. 일회용 함수란? 한 번만 사용할 구문들의 집합이면서, 그 형식은 함수로 작성되어야 하는 제약조건이 있을 때 만들어 사용할 수 있는 함수 익명(Anonymous) 함수 굳이 함수의 이름 사용할 필요 없어서 생략 캡처? 원본 값이 사라져도 클로저의 body 안에서 그 값을 활용할 수 있다. 스위프트에서 클로저라고 부르는 객체는 대부분 세 가지 경우..
안녕하세요!! :D 오늘은 클래스와 구조체, 열거형에 관해 공부해보겠습니다1!!! 오늘두 화이팅! 상수와 변수 -> 프로퍼티(Property) 함수 -> 메소드(Method) Class 일반적으로 단일 상속이 가능하지만, 프로토콜을 사용하면 다중 상속도 가능 참조타입 (=reference type) (call by reference) 형 변환(Type Casting)과 관련된 기능과 파괴자(Deinitializer)등의 기능을 가질 수 있다. iOS 프레임 워크의 대부분의 큰 뼈대는 모두 클래스로 구성 메모리의 Heap 영역에 존재 class Helo { var name:String = "Sojin"; func say(){ print("Hello, " + name + "!"); } } class Hell..
guard & assert 애플리케이션이 동작 도중에 생성하는 다양한 결과값을 동적으로 확인하고 안전하게 처리할 수 있도록 확인하고 빠르게 처리할 수 있습니다. # guard 문 if문과 마찬가지로 주어진 표현식의 결과가 참인지 거짓인지에 따라 구문의 실행 여부를 결정짓는 방식의 조건문 보통 함수나 메소드에서 사용 심각한 오류가 발생할 경우, 전체 구문을 조기 종료(Early Exit)하기 위한 목적 guard의 else 블럭 내부에는 특정 코드블럭을 종료하는 지시어 (return, break 등)가 꼭 있어야 함 타입 캐스팅, 옵셔널과도 자주 사용 그 외 단순 조건 판단후 빠르게 종료할 때도 용이 //MARK: - Early Exit func functionWithGuard(age: Int?) { gu..
오늘은 옵셔널에 대해 알아보도록 하겠습니다!:-) 다른 C, Java에서 접해보지 못한 문법이라 조금 어렵더라구요!! 자 그럼 같이 이해해보러 갑시당 👊 Optional(옵셔널) 옵셔널이란, "nil을 담을 수 있는 타입" 입니다. 일반 데이터 타입은 nil 값을 담을 수 없으며, nil 값을 넣으면 오류가 발생합니다! 그럼, 왜 굳이 nil 값을 담을 수 있는 타입을 만들었으며, 어떤 상황에서 사용할까요? 크게는 아래와 같이 두가지 경우에 사용됩니다. 1. nil 값이 들어갈 가능성이있을 때 2. 정상적으로 값을 처리하지 못하는 상황이 발생했을 때, 오류를 발생시키지 않고 nil을 반환 : 문제가 생겨도 앱이 다운되지 않고 nil 값만 반환 한다는 뜻입니다! (안전함 👍) 그냥 0이나, 빈 값("")을..
반복문은 주어진 조건에 의해 특정 코드 블록을 반복적으로 실행할 수 있게 해주는 구문입니다. 프로그래밍에서 코드 블록의 반복을 루프(Loop)라고 부르고 반복되는 횟수를 루프 횟수라고 부릅니다. 반복문은 두 가지 방식으로 나눌 수 있습니다. For 반복문 : 횟수에 의한 반복 While 반복문: 조건에 의한 반복 While 구문 : 매번 루프를 시작할 때 조건식을 평가하여 루프를 돌지 말지 결정합니다. repeat ~ while 구문 : 루프를 완료할 때마다 조건을 평가하여 다음 루프 실행 여부를 결정합니다. ( 일단 주어진 코드 블록을 실행한 다음에 다시 한 번 루프를 실행할지 말지를 조건식을 통해 평가) 1. For 반복문 For 반복문은 in 키워드와 함께 사용되어 정해진 횟수만큼 주어진 코드 블록..
안녕하세요! 오늘은 Any와 AnyObject에 대해 알아보겠습니다! 먼저, Any와 AnyObject에 대해 간단하게 말해보자면 Any와 AnyObject는 무엇이든 다 받아들일 수 있는 일종의 범용 타입입니다. 아직 감이 잘 안 잡히죠? 하나씩 살펴 봅시다! 1. Any - Swift의 모든 타입을 지칭하는 키워드 - 함수 타입을 포함하여 모든 타입의 인스턴스를 나타낼 수 있습니다. 즉 Any로 선언되었다면 종류에 상관없이 모든 타입의 객체를 저장, 입력, 반환 할 수 있습니다. (원시 자료형, 구조체, 열거형, 심지어는 함수까지 허용) Any 타입의 단점 Any 타입은 매우 극단적으로 추상화된 타입 Any 타입에 할당된 객체가 사용할 수 있는 프로퍼티나 메소드가 아예 제공되지 않음 정의 하면 모든 ..