본문 바로가기

iOS

(22)
iOS_3grade - 13주차 Gemini API(generateContent)를 Swift에서 사용하기 위한 JSON 모델을 설계Request Modelimport Foundation// MARK: - Requeststruct GeminiRequest: Codable { let contents: [Content] let systemInstruction: Content? let generationConfig: GenerationConfig? let safetySettings: [SafetySetting]? enum CodingKeys: String, CodingKey { case contents case systemInstruction = "system_instruction"..
iOS_3grade - 11주차 오토레이아웃을 구현하는 방법 - 시험에 한문제 나옴. 어떤 방법이 있는지 1장. AutoLayout 기본 개념AutoLayout은 아이폰, 아이패드처럼 화면 크기가 달라도 UI가 깨지지 않게 배치하는 시스템이다.핵심은 버튼이나 레이블의 위치를 좌표로 고정하는 게 아니라, 조건(constraint) 으로 정한다는 점이다.예를 들면 다음과 같다.버튼은 부모 뷰의 위쪽에서 10pt 아래에 둔다.레이블은 오른쪽에서 20pt 떨어지게 둔다.즉, AutoLayout은 뷰의 위치와 크기를 관계로 정하는 방식이다. 2장. NSLayoutConstraint 직접 생성NSLayoutConstraint는 AutoLayout 제약조건을 Swift 코드로 직접 작성하는 방식이다.예시 코드의 의미는 다음과 같다.view1.top..
iOS_3grade - 10주차 영진위 데이터 - 5/11 일자{ "boxOfficeResult": { "boxofficeType": "일별 박스오피스", "showRange": "20260511~20260511", "dailyBoxOfficeList": [ { "rnum": "1", "rank": "1", "rankInten": "1", "rankOldAndNew": "OLD", "movieCd": "20259791", "movieNm": "악마는 프라다를 입는다 2", "openDt": "2026-04-29", "salesAmt": "250692610", "salesShare": "34.1", ..
iOS_grade3 - 9주차 영화진흥위원회 api https://codebeautify.org/jsonviewer 퀵타입 (quicktype) : JSON 데이터의 데이터 모델 만들기 URL에는 위치 정보가 있음URI 에는 위치 정보가 없는 URN이 존재집합 과 배열의 혼합으로 구성 API Optional형이라 필수 메서드가 아님Optional이 없고 Required 가 있으면 반드시 구현해야하는 필수메서드임 //// ViewController.swift// movie_yjy//// Created by 소프트웨어컴퓨터 on 2026/04/28.//import UIKitclass ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource { @IBO..
iOS_3grade - 7주차 enum Compass {case Northcase Southcase Eastcase West}var direction : Compassdirection = .Southswitch direction { //switch의 비교값이 열거형 Compasscase .North: //direction이 .North이면 "북" 출력print("북")case .South:print("남")case .East:print("동")case .West:print("서") //모든 열거형 case를 포함하면 default 없어도 됨}열거형은 .만 찍어도 값들이 자동완성 기능으로 표시됨열거형에서는 메서드도 사용가능.메서드에서 사용하는 변수는 self로 나타냄rawvalue를 지정할 수 있음.여러 타입으로 지정이 가능하며 유추해..
iOS_3grade - 6주차 protocol을 채택하면 필요한 부분을 conform 해야함. - 시험 출제 didSelectRowAt : 실행 후 셀들을 선택할 때 어떤 셀을 선택했는지를 배열로 보여줌 cellForRowAt : 실행 후 여러 셀들을 볼때 보여지는 셀들을 계속 만드는 역할을 함주변 cell을 자동으로 생성한다 그러나 다 생성하지는 않는다 내가 보고있는거 주변만 출력이 됨 1. 전역 변수var name = ["학식","스벅","초밥","분식","중식"]테이블뷰에 표시할 데이터 배열각 셀에 들어갈 텍스트라고 보면 됨총 5개 → 행(row) 개수와 연결됨2. ViewController 선언class ViewController: UIViewController, UITableViewDelegate, UITableViewDat..
iOS_grade3 - 5주차 프로토콜: “이 기능을 구현해야 한다”는 약속 👉 “알바 계약서 (해야 할 일 목록)”델리게이트: 그 프로토콜을 이용해서 일을 대신 처리하게 맡기는 패턴 👉 “그 계약서 보고 실제로 일하는 알바생”- delegate는 Swift에서 자주 사용하는 디자인 패턴 상속을 받는 부모는 가장 앞에 하나만 가능하며, 나머지는 프로토콜임괄호 열고 get set을 직접 작성해야함. (읽기와 쓰기)protocol에 속한 메서드는 {}의 함수의 body가 없어야함.클래스 Man 이 Runnable 이라는 프로토콜을 채택을 했지만 프로토콜에 해당하는 규칙을 준수 (conform) 하지 않아서 에러 발생 이 코드는 Swift에서 프로토콜을 정의하고, 클래스가 그 프로토콜을 채택(구현)한 예시1. 프로토콜 정의protoc..
iOS_3grade - 4주차 argument label 과 parameter name 을 구분하지 않고 하나만 쓸 경우에는 호출할 때와 함수 내부에서 동일한 이름으로 변수가 쓰임Swift에서 디폴트 인자(default parameter) 를 쓰는 이유1️⃣ 함수 호출 편리하게매번 같은 값을 전달할 필요 없음func greet(name: String = "Guest") { print("Hello, \(name)!")}greet() // Hello, Guest!greet(name: "Tom") // Hello, Tom!호출할 때 인자를 생략 가능 → 코드 간결2️⃣ 오버로딩(overload) 줄이기같은 기능의 여러 함수를 만들 필요 없음func drawCircle(radius: Double, color: Strin..