목록발전중 (5)
BOID
안녕하세요 HoonIOS입니다. :) 후처리인 defer에 대해 알아보겠습니다. 크게 defer는 코드 블록을 나가기 전에 무조건 꼭! 꼭! 꼭! 실행되는 코드라고 생각하시면 됩니다. defer란? - defer구문을 사용하면 현재 있는 코드 블록을 빠져나가기 전에 꼭 실행해야 하는 코드를 작성해줄 수 있습니다. - defer구문의 특징은 오류가 발생해서 코드블록을코드 블록을 나가든, 정상적으로 코드 블록을 나가든 defer구문은 코드가 블록을 빠져나가기 전에 무조건 실행이 됩니다. ( 따라서 만약 파일을 열고 사용하고 있다가 에러가 발생해서 코드가 블록을 빠져나가게 되면 그전에 그 파일을 정상적으로 닫아 메모리 해제를 해야 되는데 그때 defer구문 내부의 코드를 실행시켜 정상적으로 메모리를 해제시켜줄..
안녕하세요 HoonIOS입니다 :) 안녕하세요 이번에는 화면 전환에서의 마지막 세그웨이를 이용한 화면 전환에 대해 알아보겠습니다. 세그웨이라고 불리는 객체는 스토리보드에서 사용하는 것으로 뷰 컨트롤러 사이의 연결 관계에 대한 화면 전환을 관리하는 역할을 합니다. 세그웨이를 이용하면 따로 코드로 사용하지 않고 스토리보드로만 화면을 전환할 수 있는 게 특징입니다. - 위 사진은 스토리보드에서 세그웨이를 보여주는 것으로 뷰컨트롤러 사이에 화살표로 되었는 것이 세그웨이라는 객체입니다. 좀 이따가 설명을 드리겠지만 위 모양의 세그웨이는 present(_:animated:) 메소드 역할을 하는 세그웨이입니다. - 세그웨이는 한쪽으로만 통행할 수 있는 일반통행 다리라고 할수 있습니다. 즉, 한쪽으로만 흐르는 단방향 ..
안녕하세요 HoonIOS입니다 :) 저번에는 제네릭의 개념과 제네릭 함수, 타입, 타입 확장에 대해 알아봤는데요, 이번에는 타입 제약 즉 특정 타입에 한정되게 제약을 두는 것과 프로토콜과 서브 스크립트에서 제네릭을 사용하는 것에 대해 알아보겠습니다. 제네릭의 타입 제약 - 앞 포스팅에서는 제네릭 타입 제약을 받지 않는 제네릭 함수를 구현해 보았는데, 만약 특정 타입에서만 한정되어야 할 처리가 있다던가, 제네릭 타입을 특정 프로토콜을 따른느 타입만 사용할 수 있도록 제약을 두어야 하는 상황이 있으면, 이때 타입 제약을 통해서 제약사항을 지정해 줄 수 있습니다. - 타입 제약은 클래스 또는 프로토콜에서만 줄수 있습니다. 이 말은 즉 타입 매개변수 자리에 사용할 실제 타입이 특정 클래스를 상속받는 타입이어야 ..
안녕하세요 HoonIOS입니다 :) 반가워요 이번에는 제네릭에 대해서 알아보겠습니다, 이 부분은 들어본 적은 있지만 개념을 잘몰라 공부를 해봤습니다. 그 내용을 한번 포스팅 해볼려고 합니다 재밌게 읽어주세요 ㅎㅎ 제네릭이란? - 제네릭을 이용해 코드를 구현하면 어떤 타입에도 유연하게 대응할 수 있습니다. 또 제네릭으로 구현한 기능과 타입은 재사용하기도 쉽고 코드의 중복을 줄일 수 있기 때문에 추상적인 표현이 가능합니다. - 실제로 제네릭은 애플 표준 라이브러리에서도 많이 사용을 합니다. 예를들어, Array, Dictionary, Set 등의 타입은 모두 제네릭 컬렉션입니다. Int, String타입을 요소로 갖는 배열을 만들거나 그 외의 어떤 타입도 배열을 요소로 가질 수 있었던 것은 모두 제네릭 덕분..
안녕하세요 HoonIOS입니다 :) 이번은 swift의 extensions에 대해 공부를 해봤는데요, 제가 생각한 것보다 훨씬 포괄적이고 제가 모르는 부분이 많아서 포스팅을 했습니다. 그럼 한번 알아보겠습니다. extensions 란? * 애플 공식 문서에서 정의된 extensions - 공식문서에서 보면 새로운 함수적 기능을 class, structure, enumeration, or protocol type에 확장한다는 의미를 지니고 있습니다. - 익스텐션은 스위프트의 강력한 기능 중 하나로 구조체, 클래스, 열거형, 프로토콜 타입에 새로운 기능을 추가할 수 있다. - 스위프트의 익스텐션이 타입에 추가할 수 있는 기능은 다음과 같다. 연산 타입 프로퍼티/ 연산 인스턴스 프로퍼티 타입 메서드/ 인스턴스..