목록분류 전체보기 (179)
study record
@IBDesinable 속성을 사용하면 인터페이스 빌더 수행을 라이브로 업데이트시킬 수 있다. IBDesinable은 UIView 클래스에서 잘 정의되기 위해 프레임을 필요로 한다. https://zeddios.tistory.com/270 이 블로그를 참고하면 IBInspectable과 IBDesinable 에 대한 이해도를 높일 수 있다. UIView를 활용할 때 테두리에만 디자인을 추가하고자 하는 경우가 생길 수 있다. 이 때의 borderWidth, borderColor를 지정하는 방법에서 두 가지를 사용한다. borderWidth 테두리 넓이를 지정하기 위해 새로운 cocoaTouch 파일을 만들고 View 에 할당한다. 이 코코아 터치 파일에서 @IBInspectable 을 활용하면 set연산을..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bYAWeJ/btrtlmIwZqK/xo2QFmPyAyGXaAC0TY6hh0/img.png)
Intrinsic Content Size는 무엇일까요? 어디서 나온 단어이고, 어디에 쓰일까요? 그리고 면접질문에서 왜 등장하는지 알아봅시다! Intrinsic Content Size는 UI 인터페이스 요소의 오토레이아웃, 즉 제약을 설정할 때 등장하는 단어입니다. 우리가 인터페이스 요소를 스토리보드에 올려두었을 때 width와 height를 따로 설정하지 않았어도 자동으로 설정되는 경우가 있었습니다. Intrinsic Content Size는 자신의 컨텐츠 사이즈에 따라서 결정되는 뷰 사이즈를 말합니다. label, button 같은 경우는 intrinsic content size가 있어서 뷰 내부의 컨텐츠에 따라 자신의 높이와 넓이를 알게 됩니다. 따라서 버튼의 제약을 지정할 때 모든 제약을 걸어주지..
*이 글은 책 “스위프트 프로그래밍"을 읽고 작성한 글입니다. 반환 타입에 불명확 타입을 사용하면 반환할 타입의 정확한 타입을 알려주지 않은 채로 반환하겠다는 것을 의미한다. 프로퍼티나 서브스크립트의 선언 혹은 함수의 반환 타입 위치에 프로토콜을 쓰면서 앞에 some을 붙이며나 ‘이 프로토콜을 준수하는 어떤 타입 중에 하나일 것은 분명하다'는 뜻이다. 제네릭은 정의해 줄 때 정확히 어떤 타입이 들어올지 모르는 상태로 플레이스 홀더를 만들어준다. 불명확 타입은 반대로 외부에서는 어떤 타입이 나에게 반환될지 모른다. 제네릭은 외부에서 타입을 지정해 주는 것이고, 불명확 타입은 내부에서 타입을 정해서 내보내게 되는데 밖에서는 정확히 어떤 타입인지는 몰라도 쓸 수 있는 것이다. 따라서 ‘역제네릭 타입'이라고 표..
*이 글은 책 “스위프트 프로그래밍"을 읽고 작성한 글입니다. 스위프틑 안전을 중요시하는 언어로 컴파일러가 코드에서 위험을 줄일 수 있도록 많은 장치를 두었다. 변수를 사용하기 전에 초기화를 강제하고, 해제된 메모리에 접근할 수 없도록 설계된 것들이 그 대표적인 예이다. 스위프트는 메모리를 자동으로 관리하기 때문에 특별한 경우가 아니면 프로그래머가 메모리의 접근에 대해 신경쓸 필요가 없다. 그렇지만 메모리 접근 중 충돌이 발생할 수 있는 상황을 이해해야 메모리가 충돌할 만한 코드를 작성하지 않을 수 있다. 메모리 접근 충돌의 이해 프로그래머가 변수에 값을 할당하거나 함수의 전달인자로 변수의 값을 전달하는 등의 경우에 코드를 통해 메모리에 접근하게 된다. // one이 저장될 메모리 위치에 쓰기 접근 va..