본문 바로가기

아이폰 개발/ios 개념&튜토리얼86

swift 프로퍼티 정리 2 swift 프로퍼티 정리 2 ✅프로퍼티 감시자 프로퍼티 감시자를 사용하면 프로퍼티의 값이 변경됨에 따라 적절한 작업을 수행할 수 있습니다 프로퍼티 감시자는 프로퍼티의 값이 새로 할당될 때마다 호출합니다. 프로퍼티 감시자는 저장 프로퍼티 뿐만 아니라 프로퍼티를 재정의해 상속받은 저장 프로퍼티 또는 연산 프로퍼티에도 적용가능합니다. 상속 받지 않은 연산 프로퍼티에는 프로퍼티 감시자를 사용할 필요가 없으며 할 수도 없습니다. 연산 프로퍼티의 접근자(get)와 설정자(set)를 통해서 프로퍼티 감시자를 구현할 수 있기 때문입니다. 연산 프로퍼티는 상속받았을 때만 프로퍼티 재정의를 통해서 프로퍼티 감시자를 사용합니다. ✅프로퍼티 감시자 종류 willSet - 프로퍼티 값이 변경되기 전에 호출 didSet - 프로.. 2022. 10. 28.
swift 프로퍼티 정리 1 swift 프로퍼티 정리 1 종류 1.저장 프로퍼티 - 인스턴스의 변수 또는 상수를 의미한다. (클래스, 구조체에서 사용) 2.연산 프로퍼티 - 값을 저장하는것이 아니라 특정 연산을 실행한 결과값을 의미한다. (클래스, 구조체, 열거형에 사용) 3.타입 프로퍼티 - 타입에 사용되는 프로퍼티 참고 프로퍼티 감시자 - 프로퍼티의 값이 변하는 것을 감시한다. 값이 변할때 값의 변화에 따른 특정 작업을 실행한다. (저장 프로퍼티에 적용가능) 저장프로퍼티 var 키워드 - 변수 저장 프로퍼티 let 키워드 - 상수저장 프로퍼티 저장 프로퍼티를 정의할 때 프로퍼티 기본값과 초깃값을 지정해 줄 수 있다. 참고 *구조체의 저장 프로퍼티가 옵셔널이 아닐때 - 구조체는 저장 프로퍼티를 모두 포함하는 이니셜라이저를 자동으로.. 2022. 10. 24.
swift - 클래스와 구조체 정리하기 swift - 클래스와 구조체 구조체와 클래스 구조체와 클래스는 개발자가 데이터를 용도에 맞게 묶어서 표현하고자 할 때 유용하다. 구조체의 인스턴스는 값 타입이고, 클래스의 인스턴스는 참조 타입이다. struct Person{ var name: String var age: Int } 구조체 인스턴스의 생성 및 초기화 구조체 정의를 하고, 구조체의 인스턴스를 생성하고 초기화 하려면 기본적으로 생성되는 멤버 와이즈 이니셜라이저를 사용한다. 구조체에 기본 생성된 이니셜라이저의 매개변수는 구조체의 프로퍼티 이름으로 자동 저장된다. 인스턴스가 생성되고 초기화 된 후 프로퍼티 값에 접근하고 싶다면 ( . ) 마침표를 사용하면 된다. [참고] 구조체를 상수 let으로 선언하면 인스턴스 내부의 프로퍼티 값은 변경할 수.. 2022. 10. 17.
mac에서 gitlab과 sourceTtree 연동 후 push 까지 mac에서 gitlab과 sourceTtree 연동 후 push 까지 순서 1.깃랩에 (저장소)리파짓토리 생성하기 2.sourcetree 다운로드 2.소스트리 open 후 메인 화면에서 로컬 -> 새로 만들기 -> 로컬 저장소 추가하기 클릭 3.로컬 리파지토리(저장소)로 지정할 내가 만든 폴더 선택하기 (테스트로 바탕화면에 아무 폴더 선택) 4.그럼 sourceTree 메인에 내가 선택한 나의 로컬 저장소(리파짓토리)가 생성됨 5.나의 로컬 리파짓토리 더블클릭 - 커밋 메시지 작성 후 - 커밋하기 6.상단 제일 우측에 설정아이콘 클릭 -> 원격 아이콘 클릭 7.깃랩에서 만든 저장소 주소 작성 -> 확인 클릭 (깃랩 저장소 주소는 깃랩 저장소 메인 페이지에서 clone 버튼 클릭하면 보임) 8.push 9.. 2022. 9. 20.
ios LFLiveKit 라이브러리 이용해서 RTMP 구현 예제 ios LFLiveKit 라이브러리 이용해서 RTMP 구현 예제 ios 에서 rtmp 실시간 스트리밍을 구현하기 위해서 이곳에서 라이브러리를 받아주세요. podfile에 추가하신 후 pod install 명령어로 설치를 해봅니다. 헤더파일 생성 위의 rtmp 라이브러리를 swift에서 사용하기 위해서 헤더 파일을 만들어 줍니다. 그리고 rtmp 라이브러리를 import 해줍니다. #ifndef Bridging_Header_h #define Bridging_Header_h #import #endif /* Bridging_Header_h */ 그리고 빌드셋팅으로 가셔서 Bridging Header 부분에 위 브릿지 헤더 파일 경로를 작성해 줍니다. 변수 선언 먼저 LFLiveSession 타입의 변수를 선언.. 2022. 9. 16.
ios MQTT 통신 - swift로 구현하기 ios MQTT 통신 - swift로 구현하기 준비물 [1] xcode 툴 [2] ios용 MQTT 클라이언트 라이브러리(https://github.com/emqx/CocoaMQTT) 위의 주소로 들어가셔서 pod 파일 확인하시고, 프로젝트의 pod 파일에 라이브러리 명을 입력해주시고 pod install 을 해주세요. 여기서는 pod 관련한 내용은 자세히 다루지 않을거에요. 라이브러리를 설치하셨다고 가정하고 진행할게요. [3] MQTT 브로커 역할을 해줄 서버 이 내용은 네트워크-우분투 MQTT 서버구축과 기본 개념 이 곳을 참고해주세요. 스토리보드 아래 이미지 처럼 스토리 보드를 작성해 주었습니다. 색깔별로 되어 있는 버튼들은 MQTT 통신 구독과 발행 또는 연결, 연결 종료를 처리합니다. 아래 모니.. 2022. 9. 14.
swift 프로퍼티 정리 (lazy var , 연산프로퍼티, 저장 프로퍼티) swift 프로퍼티 정리 (lazy var , 연산프로퍼티, 저장 프로퍼티) ● Stored Property(저장 프로퍼티) var로 선언하면 "변수"를 저장 let으로 선언하면 "상수"를 저장 lazy 프로퍼티는 항상 변수로서 선언즉, var로 선언! 게으른 저장 프로퍼티는 "값이 필요할 때" 초기화를 함. https://zeddios.tistory.com/243 ● Computed Property(연산 프로퍼티) 연산프로퍼티는 값을 "저장"하기 보다는 연산을 한다 - (연산결과를 저장해줄 저장프로퍼티 필요함) 반드시 var로 선언되어야 한다.(값이 고정되어 있지 않기때문) 1. 클래스, 구조체, 열거형에 사용된다. 2. var로 선언해야한다. 3. 클래스, 구조체, 열거형에 값을 저장할 저장프로퍼티가.. 2022. 9. 1.
ios collectionView Tag cell - 여러 옵션 선택하기 기능 구현 ios collectionView Tag 여러 cell 선택하기 기능 구현 어느날 문득 아이폰 앱중에 사용자의 관심사나 성향 등을 입력하는 화면으로 아래와 같은 화면들이 자주 보였다. 아래는 취업관련 앱의 화면중 하나인데 관심있는 분야를 아래 레이아웃 형태로 구성해서 사용자가 쉽게 선택하게끔 유도했다. 그래서 나도 한번 만들어 보고 싶었다. 만들기전에 관련 기술들이 뭐가 있을까 검색을 하다가 아래 처럼 구현해주는 라이브러리도 있다는것을 알았다. 그래도 라이브러리쓰면 너무 싱거우니깐 간단하게 만들어 보자. 시작하기 전에 구조를 잠깐 훑고 가보자. 구조소개 [1]Tendency 파일은 Tendency 즉 각각의 취향 데이터를 담을 struct 타입의 데이터를 담고 있다. [2]TendencyItem : UI.. 2022. 8. 3.
ios view Pager - 스와이프로 메뉴 처리하기 (code layout 구현) ios view Pager - 스와이프로 메뉴 처리하기 (code layout 구현) 아래와 같은 UI를 어떻게 구현할 수 있을까 고민해보다가 괜찮은 아티클을 발견해서 정리해본다. 아래와 같은 UI는 상단에 제목 탭을 누르면 제목 탭 아래에 표시가 되면서 해당 화면이 자동으로 스크롤 되는 형태이다. 또한 화면을 좌으로 스와이프 하면 해당 매뉴 탭이 자동으로 선택이 되는 형태이다. 먼저 구현하기 전에 위화면의 구조를 나누어 보자. 먼저 화면은 크게 두개로 나뉜다. TabbedView와 PagedView이다. TabbedView : 화면의 상단 탭 메뉴를 담당하며 collectionView를 가지고 있다. PagedView : 화면의 하단 페이지를 담당하며 collectionView를 가지고 있다. 그리고 .. 2022. 8. 1.