전체 글 (164) 썸네일형 리스트형 [코딩테스트 입문] Swift - Day 8 1. 주사위의 개수 Q. 머쓱이는 직육면체 모양의 상자를 하나 가지고 있는데 이 상자에 정육면체 모양의 주사위를 최대한 많이 채우고 싶습니다. 상자의 가로, 세로, 높이가 저장되어있는 배열 box와 주사위 모서리의 길이 정수 n이 매개변수로 주어졌을 때, 상자에 들어갈 수 있는 주사위의 최대 개수를 return 하도록 solution 함수를 완성해주세요. **제한사항 box의 길이는 3입니다. box[0] = 상자의 가로 길이 box[1] = 상자의 세로 길이 box[2] = 상자의 높이 길이 1 ≤ box의 원소 ≤ 100 1 ≤ n ≤ 50 n ≤ box의 원소 주사위는 상자와 평행하게 넣습니다. func solution(_ box:[Int], _ n:Int) -> Int { Int(box[0]/n).. [2023-04-01] 개발일지 2023-04-01 1. Project iOS 개인 미션(mission_01-1) / No Storyboard 방식 2. Process 로그인 화면 구성 3. Issue & Solution (1) ScrollView 동작 오류 iPhone14 pro를 기준으로 화면을 만드는데, 기기를 변경하면서 화면이 작아지면 ScrollView를 통해 로그인 버튼을 누를 수 있도록 하려고 했지만 ScrollView가 정상적으로 작동하지 않았다. (1) ScrollView 의 ContentLayoutGuide & FrameLayoutGuide 나는 ScrollView에 ContainerView를 넣어서 구현하려고 했다. 단순히 ScrollView의 크기에 맞춰 ContainerView의 Constraint를 맞춰주면 되.. [iOS] UIKit 미리보기 기능 추가(Preview) Extension 코드를 추가 UIKit를 사용하면서 미리보기 기능을 추가해주려면 SwiftUI를 사용해서 만들어주어야 합니다. 아래 코드를 새로운 파일 혹은 미리보기를 사용하려고 하는 파일에 추가해주세요. // ViewController+Ext.swift #if DEBUG import SwiftUI extension UIViewController { private struct Preview: UIViewControllerRepresentable { let viewController: UIViewController func makeUIViewController(context: Context) -> UIViewController { return viewController } func updateUIView.. [iOS] 커스텀 뷰 만들기(@IBDesignable & @IBInspectable) IBDesignable과 @IBInspectable을 이용해 커스텀 뷰를 만드는 방법에 대해 알아보도록 하겠습니다. 커스텀 뷰를 만드는 이유는 재사용 가능한 뷰를 만듦으로써 조금 더 쉽게 뷰를 사용하기 위함입니다. 1. 초기 세팅 우선 Main.storyboard에 뷰를 하나 만들어줍니다. 이 뷰를 ViewController.swift 파일에 @IBOutlet 으로 연결해줍니다. 저는 boxView로 이름을 만들었습니다. 다음으로 커스텀 뷰를 정의할 파일인 CustomView.swift 파일을 만들어줍니다. 2. @IBInspectable @IBInspectable은 스토리보드에서 뷰를 클릭했을 때 보이는 인스펙터에 속성을 보여주는 역할을 합니다. 말로는 이해가 잘 되지 않으실 수 있습니다. 아래 사진을.. [iOS] defer 블록 defer 블록은 함수나 메소드에서 코드의 흐름과 상관없이 가장 마지막에 실행되는 블록입니다. 지연블록이라고 부르기도 하는데, 이 블록에 작성된 구문은 항상 함수의 종료 직전에 실행되기 때문에 종료 시점에 맞추어 처리해야 할 구문이 있다면 우리는 어디에 작성해야 할지 고민하지 않고 defer 블록에 넣어두기만 하면 됩니다. 특징 defer 블록은 작성된 위치와 순서에 상관없이 함수가 종료되기 직전에 실행된다. defer 블록을 읽기 전에 함수의 실행이 종료될 경우 defer 블록은 실행되지 않는다. 하나의 함수나 메소드 내에서 defer 블록을 여러 번 사용할 수 있다. 이때에는 가장 마지막에 작성된 defer 블록부터 역순으로 실행된다. defer 블록을 중첩해서 사용할 수 있다. 이때에는 바깥쪽 de.. [코딩테스트 입문] Swift - Day 7 1. 2차원으로 만들기 Q. 정수 배열 num_list와 정수 n이 매개변수로 주어집니다. num_list를 다음 설명과 같이 2차원 배열로 바꿔 return하도록 solution 함수를 완성해주세요. num_list가 [1, 2, 3, 4, 5, 6, 7, 8] 로 길이가 8이고 n이 2이므로 num_list를 2 * 4 배열로 다음과 같이 변경합니다. 2차원으로 바꿀 때에는 num_list의 원소들을 앞에서부터 n개씩 나눠 2차원 배열로 변경합니다. func solution(_ numList:[Int], _ n:Int) -> [[Int]] { (0...(numList.count/n)-1).map { Array(numList[(n * $0)...((n - 1)+(n * $0))]) } } 2. 공던지기.. [iOS] 접근 제한자 간단 정리 접근 제한자 객체의 접근 범위를 명시적으로 정의하기 위해 제공된다. 이 접근 제한자들은 클래스나 메소드, 프로퍼티 앞에 작성되어 개별 객체와 속성에 대한 접근을 단계별로 허용하거나 차단하는 기능을 수행한다. 1. private 이 접근 제한자로 선언된 클래스와 메소드, 프로퍼티는 같은 클래스 내에서만 접근이 가능합니다. 2. fileprivate (3.0 버전부터 추가) 이 접근 제한자로 선언된 클래스와 메소드, 프로퍼티는 같은 파일 내에서 접근이 가능합니다. 3. internal 이 접근 제한자로 선언된 클래스와 메소드, 프로퍼티는 같은 모듈 또는 프로젝트 내에서 접근이 가능합니다. 접근 제한자를 선언하지 않고 클래스나 메소드, 프로퍼티를 정의하면 컴파일러는 기본적으로 internal 범위를 적용합니다.. [iOS] Xcode 14, iOS 15 에서 Navigation Bar Color 설정 방법 Xcode 14, iOS 15 에서 NavigationBar Color 설정 방법에 대해서 ... ISSUE "꼼꼼한 재은 씨의 스위프트 실전편" 을 학습 중에 Navigation Bar 를 커스텀하는 과정에서 문제가 있었습니다. 바로 책에서 제안하는 방법으로는 iPhone 14 Pro 시뮬레이터에서는 내비게이션 바의 색상이 변경되지 않는 문제가 있었습니다. 책에서 제안하는 방법대로 아래와 같이 내비게이션 바를 설정했었습니다. (꼼꼼한 재은 씨의 스위프트 실전편: 368p) import UIKit class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() self.initTitle() } func in.. [iOS] 강한 참조와 약한 참조 강한 참조와 약한 참조 아웃렛 변수는 스토리보드에 정의된 객체를 커스텀 클래스에서 참조할 수 있도록 연결된 변수입니다. 이는 스토리보드의 객체와 직접적으로 연결되기 때문에, 해당 객체의 속성을 커스텀 클래스에서 직접 호출할 수 있습니다. 오늘은 이 아웃렛 변수를 선언할 때, 설정창 하단에 있는 [Storage] 영역의 옵션에 대해 알아보도록 하겠습니다. [Storage] 영역의 옵션은 "Strong"과 "Weak"이 있습니다. 기본 값은 "Weak" 옵션입니다. 해당 옵션은 iOS 시스템(ARC)에서 변수의 메모리 관리와 관련이 있습니다. "Strong" 타입은 강한 참조, "Weak" 타입은 약한 참조라고 부릅니다. ARC(Auto Reference Counter): '특정 변수를 몇 군데에서 사용하고.. [코딩테스트 입문] Swift - Day 6 1. 직각삼각형 출력하기 Q. "*"의 높이와 너비를 1이라고 했을 때, "*"을 이용해 직각 이등변 삼각형을 그리려고합니다. 정수 n 이 주어지면 높이와 너비가 n 인 직각 이등변 삼각형을 출력하도록 코드를 작성해보세요. import Foundation let n = readLine()!.components(separatedBy: [" "]).map { Int($0)! } (1...n[0]).forEach { print(String(repeating:"*", count:$0))} 2. 외계행성의 나이 Q. 우주여행을 하던 머쓱이는 엔진 고장으로 PROGRAMMERS-962 행성에 불시착하게 됐습니다. 입국심사에서 나이를 말해야 하는데, PROGRAMMERS-962 행성에서는 나이를 알파벳으로 말하고 있.. 이전 1 2 3 4 5 6 ··· 17 다음