IOS 썸네일형 리스트형 [내용정리] Swift - StackView사용법과 속성들 (2/2) 1편에서 stackView의 정의와 개념 및 distribution에 대해서 알아보았다. 1편을 보지 않았다면 미리 본이후 방문하는것을 추천한다. https://yoonds-develop.tistory.com/47 alignment의 속성은 StackView내에서 subView의 하위 뷰들을 어떤식으로 정렬할것인지에 대해서 정의합니다. Alignment 1. Fill stackView의 axis와 수직인 방향으로 가능한 공간을 채우기위해 subView들을 resizing합니다. 쉽게 고무줄처럼 땡겨 늘어놓는다고 이해하면 된다. axis가 Horizontal일경우 상하공간을 채우기 위해 resizing(키다리 만들기), Vertical일경우 좌우 공간을 채우기위해 resizing된다(뚠뚠이 만들기). 2... 더보기 [내용정리] Swift - StackView사용법과 속성들 (1/2) stackView를 사용하면서 view들을 묶어서 일정하게 정렬한다라는 뜻으로 이해하고 사용하였다. 하지만 앱을 개발하다보니 distribution의 속성들에 대해서도 명확히 알고 가야한다는 필요성을 느끼게되어 정리해본다. 현재 스토리보드없이 CodeBase(Programmatically)방식으로 개발중이셔서 코드로 정리를 진행할 예정이다. 뷰를 짜는 방식만 다를 뿐, 속성등의 사용법은 동일하다. 우선 stackView란 무엇인가? 화면의 View들을 개발자가 지정한대로 배치하기 위해 사용한다. stackView의 종류는 크게 두가지가 존재한다. Horizontal StackView: View들을 가로로 배치 Vertical StackView: View들을 세로로 배치 보통 코드내 stackView를 구.. 더보기 [내용정리] Swift - Class(클래스)와 Struct(구조체)의 차이 면접때 자주하는 질문중 하나인 클래스와 구조체의 차이는 무엇인가요? 위 질문에 단순하게 대답한다고하면 '클래스는 복사를 할경우 참조타입이며, 구조체는 값자체를 복사한다.' 라고 대답할 수 있다. 한줄요약은 이렇지만 우리는 그차이를 깊게 이해하며, 공부한 토대로 성능 개선이 가능한 개발을 진행해야한다. 우선 구조체와 클래스의 차이는 Class(클래스) Struct(구조체) 상속 여부 O X 타입캐스팅 O X 참조횟수 계산(ARC) O X 그렇다면, 계속 클래스는 참조, 구조체는 값타입이라고 하는데 도대체 어떠한 뜻인걸까? Struct는 값 자체를 복사하여 yoonds는 minsu의 인스턴스를 그대로 복사하여 몸무게를 복사하는데 성공하였다. struct MyInfo { var weight: Int } // .. 더보기 [내용정리] Swift - 메모리 관리 Weak, Strong, Unowned? Swift로 ios를 개발하면서 메모리 관리를 어떻게 해야지? 라는 생각을 한번쯤은 해봤을것이다. Swift는 ARC를 지원해주는 언어이다. ARC란 무엇일까? Automatic Reference Counting의 약자로써 컴파일시에 코드를 분석하여 자동적으로 retain(유지), release(풀기) 코드를 생성해준다. 중요한것은 말그대로 횟수를 추적하여 더이상 참조되지 않는 인스턴스는 메모리에서 헤제해준다. 반대로 얘기하면 메모리를 자동으로 올려주기도하여 해당 메모리를 풀어주지 않을경우 메모리 누수가 발생한다. strong(강한참조) 해당 인스턴스의 소유권을 가진다. 자신이 참조하는 인스턴스의 retain count가 증가된다. 값 지정시에 ratain이 되고 참조가 종료될때 release가 된다. .. 더보기 [내용정리] Swift - 옵셔널(Optional)이란? 처음 Swift를 접하였을 때 java와는 다르게 Swift는 간편하게 옵셔널을 제공한다고 들었다. 처음에는 이해가 안되어 검색을해보니 '값이 nil일수도 있다' 이렇게만 이해하고 사용해왔었는데 swift의 꽃이라고도 볼수있는 Optional에 대해서 더 자세히 알아보는 시간을 갖도록 한다. 그렇다면 옵셔널타입은 어떤식으로 나타낼까? var name:String? = "hello" print(name) // Optional("hello") 타입(String) 뒤에 ?(물음표)를 나타내어 표시한다. name의 값은 nil일수도 있거나 값이 있을수도 있다 라는것을 표현한다. 해당 데이터를 print로 찍어보면 'Optional("hello")'로 출력되어있는데 정상적으로 출력된것이다. Optional("he.. 더보기 [내용정리] Swift - closure(클로저)란? (2/2) 클로저를 공부하다보니 2편까지 오게되었는데.. 1편의 기초를 보지않았다면 1편을 먼저 보고오는것을 적극 추천합니다. https://yoonds-develop.tistory.com/manage/newpost/22?type=post&returnURL=https%3A%2F%2Fyoonds-develop.tistory.com%2F22 1편의 마지막 코드를 살펴보면 호출과 동시에 클로저를 정의한부분이 있다. 바로 해당코드인데 마지막 method부분을 함수 바깥에서 표현이 가능하다. 동시에 매개변수명도 생략이 가능하다. 이를 후행클로저 라고한다. 후행클로저의 조건 마지막 전달인자가 클로저여야함 func calculate(a: Int, b:Int, method: (Int, Int) -> Int) -> Int { re.. 더보기 [내용정리] Swift - JsonArray와 JsonObject의 차이 API서버에서 데이터를 가져오는 과정에서 JsonArray의 JsonObject 형태로 데이터를 내려받는것을 알게되었다. 둘의 차이는 무엇일까? 우선 Json은 key와 value로 이루어진 데이터의 집합이다. swift의 dictionary와 비슷하게 둘의 사이를 : 로 구분짓는다. 예를들어 name이라는 key안에 Daesung이라는 value(값)이 저장 되는것이다. "name" : "Daesung" 데이터가 조금더 많다면 어떻게 될까? 학생들을 Json으로 만들어보자 name age gender 홍길동 12 man 김장미 11 woman 김콩콩 16 man 위 데이터를 JsonArray로 나타내어 본다. 배열답게 [대괄호]를 활용하여 모든 데이터를 정리하였다. 물론 접근도 index의 순서에 맞게.. 더보기 [내용정리] Swift - closure(클로저)란? (1/2) swift에서 정말 많이 쓴다는 클로저, 정리가 안되어 다시한번 정리 해본다. 클로저의 기본형태 { (매개변수 목록) -> 반환타입 in // 실행될 코드 } 1급 객체함수, Unnamed Closure 등 여러가지의 특성을 갖고 있다. 1급 객체란? 전달인자를 전달가능 동적 프로퍼티에 할당 가능 변수나 데이터구조안에 담을수 있음 반환값으로 사용가능 할당할 때 사용된 이름과 관계없이 고유한 객체로 구별가능 어?, 그렇다면 클로저가 Unnamed Closure라면 반대로 named Closure도 존재하겠네? 우리가 알고있는 함수가 바로 이름을 갖고 있는 named Closure인것 (hello 라는 이름을 갖고 있다) 하지만 우리는 함수라고 칭하고 있다 func hello() { print("나는 nam.. 더보기 이전 1 2 다음