개발자 입니다.

  • 아직 정리가 안된 문장들(향후 포스팅 주제)

    iOS 델리게이트 패턴 프로토콜(자바의 인터페이스?)을 이용하여 구현 프로토콜이란? cocoa에서는 왜 import하지않아도 경로 상관없이 다른파일 객체를 가져다 쓸수 있는가 xcode내 그룹으로 묶어서 파일을 관리하는것은 실제 디렉토리가 아닌 가상폴더이기 때문 mvc와 mvvm storyboard는 기본적으로 mvc인가? 잘 정리된 글(참고용) swift structure와 class의 차이 struct는 value타입이므로 값에 직접 접근하기 때문에 인스턴스를 let으로 선언시 수정이 불가능(call by value) class는 reference타입이므로 인스턴스를 let으로 선언해도 내부 프로퍼티가 var라면 수정 가능(call by reference) 생성자 메소드(init) 저장 프로퍼티와 연..

  • [Swift] Guard문

    Guard란? 옵셔널 바인딩 수행중 변수에 nil이 들어있으면 예외처리를 할 수 있도록 하는 문법 func greeting(_person:[String:String]) { guard let name:String= person["name"]else{ //만약 nil이면 return으로 함수를 탈출한다 return } //nil이 아니면 수행 print("안녕하세요 \(name)님") } //함수호출 var personInfo:[String:String] = [String:String]() personInfo["name"] ="김감자" greeting(personInfo)

  • [Swift] 옵셔널 체이닝

    옵셔널 체이닝(Optional Chaining)이란? swift는 옵셔널 변수에만 nil을 할당할 수 있다. 그리고 옵셔널 바인딩으로 안전하게 옵셔널 해제도 가능하다. 그런데 또 문제가 생겼다. struct Human { var name : String? var man : Bool = true } var boy : Human? = Human(name: "홍길동", man: true) 위와같은 변수를 선언할 때 //안정성 검사를 하고 접근 if boy != nil { if boy!.name != nil { print("이름은 \(boy!.name!)입니다") } } 이런식으로 nil을 체크하거나 //옵셔널 비강제 해제 구문을 사용하면 if let b = boy { if let name = b.name { ..

  • [Swift] 옵셔널과 옵셔널 바인딩

    옵셔널(Optional)이란? swift는 옵셔널 변수에만 nil을 할당할 수 있다. 다음과 같이 변수명뒤에 '?'를 붙여서 옵셔널로 지정이 가능한데, "이 변수에 nil이 들어갈 수도있고 아닐수도 있고~"라는 의미이다. var optInt : Int? optInt = 3 var optStr : String? optStr = "Swift" var optArr : [String]? optArr = ["C", "Java", "Objective-C"] "그럼 전부 옵셔널로 변수 선언하면 끝 아닌가?" 라고 생각 할 수 있지만 애플은 다 계획이 있다. 이런식으로 만든 이유는 런타임 중에 문제가 발생하는걸 방지하기 위함이다. 만약 값이 반드시 필요한 로직에 nil이 들어가면 프로그램은 문제가 발생하지만 이것을 컴..

  • C/C++ 언어 기본 라이브러리

    헤더 파일 기능 관련 함수 stdio.h 표준 입출력 printf(), scanf(), getchar(), fopen(), fseek(), ... string.h 메모리와 문자열의 처리 strcat(), strcmp(), strcpy(), strlen(), ... ctype.h 문자 검사 및 변환 isalnum(), isalpha(), isgraph(), tolower(), ... math.h 삼각함수, 지수 절대값 함수 등 수학 함수 sin(), cos(), tan(), log(), exp(), fmod(), sqrt(), abs(), ... stdlib.h 메모리 동적 할당, 가상 난수 발생, 문자열 변환 malloc(),free(), rand(), strtod(), atof(), ... malloc..