본문 바로가기
반응형

IT/swift35

100 days of SwiftUI - Day13, Day14, Day15 protocol 과 extension protocol 은 java 의 interface 와 비슷 extension 은 c#의 partial class 같이 일부를 재 정가능한데 class 가 아닌 struct 와 protocol 을 추가 지정이 가능함. 그래서 extension 을 이용해서 c++의 연산자 오버라이딩 이 구현 가능함 . 물론 기존 타입(String, Array) 등도 확장가능함. 기존타입들이 struct이기 때문에 가능 함 protocol Person { var name: String { get } func sayHello()}extension Person { func sayHello() { print("Hi, I'm \(name)") }}struct E.. 2024. 11. 15.
100 days of SwiftUI - Day12 오늘은 class 관련 공부다.java , c++ 의 클래스와 크게 다를점이 없다. struct 와 class의 차이를 아는게 많은 도움이 되겠다.struct 는 값복사, class 는 값참조다. 복사하려면 복사 구문을 만들어줘야 한다.값참조 이기  때문에 같은 참조하는 클래스들이 모두 사라져야 메모리 해제가 된다. 그래서 init , deinit 함수가 있다. deinit 은 c++의 파괴자로 생각하면 된다. ( 파괴자라는 말은 좀 여전히 맘에 안든다... )struct 와 다르게 var를 다루는 func 에 mutating 을 안붙여도 된다.  여기서 struct는 상수같구나!  해주면 된다.  가장 큰 struct vs class 의 차이점은 상속이다.  class B : A  하면 B는 A를 상속.. 2024. 11. 14.
100 days of SwiftUI - Day10 ~ Day11 swift 에서는 class 보다 struct 를 많이 쓴다고 합니다. java에서는 wrapping class 라고 하는 원시타입(int, float, double 등등등) 의 클래스들도 struct 로 구현되었다고 하네요! 오호! c의 struct 같은 경우에는 별도 함수정의가 없는데 swift 에서는 함수정의가 되고, 대신 struct 내의 변수 조작을 하려면 함수 앞에 mutating 을 써야 합니다. 또, 해당 구조체를 이용한 변수 선언시에 상수(let)로 선언하면 오류가 발생합니다.  struct Employee { let name: String var vacationRemaining: Int mutating func takeVacation(days: Int) { .. 2024. 11. 13.
100 days of SwiftUI 시작! Day 0 ~ Day 9 항상 중도 포기중인 swift 공부를 또! 시작해 봅니다.이번엔 perplexity에서 물어봤는데 이 사이트를 알려주더라구요. 또 최근에 읽은 기사에 300개 앱 만들어서 회사탈출한 사람 이야기를 듣고, 열심히 하기로 했습니다. 깐바레! https://www.hackingwithswift.com/100/swiftui 첫날은 뽐뿌에 차서 달려봅니다.  Day0. 준비끝Day1. string 길이 함수는 countDay2. 머 없음Day3. enum 선언에 case를 쓰는구나Day4. 머 없음Day5. 머 없음Day6. 아는 내용이지만 루프 돌릴때 1...10  1..Day7. func 펑크가 함수, 튜플로 2개이상 리턴 가능 이름 생략도 가능Day8. 머없음 Day9.  시~~작~~let sayHello .. 2024. 11. 12.
설치하기 on Ubuntu22.04 1. 필수 패키지 설치 sudo apt install \ binutils \ git \ gnupg2 \ libc6-dev \ libcurl4-openssl-dev \ libedit2 \ libgcc-9-dev \ libpython3.8 \ libsqlite3-0 \ libstdc++-9-dev \ libxml2-dev \ libz3-dev \ pkg-config \ tzdata \ unzip \ zlib1g-dev 2. swift 파일다운로드 및 압축 해제 wget https://download.swift.org/swift-5.8.1-release/ubuntu2204/swift-5.8.1-RELEASE/swift-5.8.1-RELEASE-ubuntu22.04.tar.gz tar xvzf swift-5.8.. 2023. 8. 9.
cocoapods 설치 iOS 개발환경에서 외부 패키지 관리는 cocoapods 라는 걸 쓴다. 이를 위한 설치 방법이다. 아래 명령어를 차례로 실행한다. 1. 혹시 설치되어 있을지 모르니 삭제 sudo gem uninstall cocoapods 2. 관련 패키지 선 설치 sudo gem install xcodeproj 3. cocoapods 설치 sudo gem install cocoapods 4. 정상적으로 설치 되면 pod --version 으로 버전 확인이 가능하다. 2023-03-04일 현재 1.12.0 버전이 설치 되었다. ## 오류조치사항 3. 에서 오류 발생시 오류 내용을 보고 조치해 준다. 나같은 경우는 낮은버전의 모듈이 있어서 오류가 발생하여 아래커맨드를 추가 실행했다. sudo gem install acti.. 2023. 3. 4.
iOS 스프라이트킷 강좌 번역 - SpriteKit Tutorial for Beginners 간단한 2D게임만들기! 압축해제 후 오픈합니다. 실행하면, 아직 페이지 로딩이 없으니 하얀 공백페이지가 보입니다. GameViewController.swift 파일의 viewDidLoad 함수의 하단에 아래의 소스를 추가 합니다. let scene = GameScene(size: view.bounds.size) let skView = view as! SKView skView.showsFPS = true skView.showsNodeCount = true skView.ignoresSiblingOrder = true scene.scaleMode = .resizeFill skView.presentScene(scene) GameScene.swift 파일에 아래 소스를 추가합니다. //player 라는 스프라이트.. 2022. 9. 9.
iOS 코어그래픽스 이용 그래픽 그리기 프로젝트를 하나 신규 한다. 왼쪽 프로젝트 네비게이터에서 컨트롤 클릭 > New File Cocoa Touch Class 선택 Draw2D 라고 Class 이름을 지정하고, Subclass of : UIView 를 선택 Main 을 눌러 메인스토리보드를 선택하고, ViewController 밑의 View 를 방금 생성한 Draw2D 로 선택한다. == 오른쪽 패널의 Identity Inspector( 명함같이 생김 ) Class 에 방금 생성한 Draw2D를 선택하는것 Draw2D.swift 파일에 아래 같이 입력한다. // // Draw2D.swift // Draw2D // // Created by HanTaeJong on 2022/09/03. // import UIKit class Draw2D: UI.. 2022. 9. 3.
화씨를 섭씨로 변환하는 프로그램 만들기 - 스토리보드 기반 1. 프로젝트 생성 2. 프로젝트 일반설정 iPhone 만 선택 Potrait 만 선택 3. 온도 입력 텍스트 필드 추가 Attributes Inspector 에서 아래와 같이 입력 PlaceHolder : 온도를 입력하시오 KeyboardType : Numbers and Puntuation 4. 변환 버튼 추가, 출력 레이블 추가, 외곽선 보이게 하기, 레이아웃 변경 버튼을 추가하고 "변환" 으로 입력 레이블 추가하고 기본으로 써져있는 Label 삭제 레이블 기본 글을 지우면 외곽이 보이지 않으므로, Editor > Canvas > Bounds Rectangles 선택 백그라운드 뷰 선택하고 조그마한 삼각형 Resolve Auto Layout Issues 클릭 -> Reset to Suggested C.. 2022. 8. 30.
반응형