[Swift] print와 dump차이, 콘솔에 로그찍기 Console Log
·
iOS/Swift
안녕하세요 욱승입니다. 이번 포스팅에선 콘솔에 로그 찍는 방법을 알아보겠읍니다 'print', 'dump'디버깅 목적으로 사용되는 Swift의 내장 함수입니다. Swift에서 콘솔에 로그를 출력하는 방법은 두가지가 있습니다. print dump print vs dump print - 콘솔 출력에 변수, 상수 및 표현식의 값을 인쇄하는 함수입니다. 디버깅 목적으로 콘솔에 메시지를 표시하는 간단하고 빠른 방법입니다. dump - 개체의 구조와 내용에 대한 자세한 설명을 인쇄합니다. 클래스, 구조체 및 배열과 같은 복잡한 개체를 검사하는 데 사용할 수 있습니다. 예제1 import Foundation import UIKit final class GameCenterViewController: UIViewCont..
[Swift] API 가이드라인
·
iOS/Swift
스위프트 API 가이드라인 스위프트 API 가이드라인. GitHub Gist: instantly share code, notes, and snippets. gist.github.com
[Swift] 메모리 관리 이미지 리사이징 ImageIO, VM: ImageIO_PNG_Data
·
iOS/Swift
안녕하세요 욱승입니다. 요새 토이 프로젝트를 진행중인데 메모리 관련해서 이슈가 생겼는데 남겨두면 좋을것 같아서 포스팅 해봅니다! (태클 환영) 그럼 우선 결과부터 보면 이러함 프로젝트 진행중 메모리가 기하급수적으로 증가하는걸 볼수 있는데 이것은 서버에서 불러오는 이미지 크기 및 해상도와 ImageView의 해상도 이미지 크기 및 해상도가 맞지않아 억지로 끼워넣고 원본이미지는 파일 크기가 너무 커 메모리가 기하급수적으로 증가하는 것. 그래서 이미지 리사이징이 필요한데 이미지 리사이징이란? 이미지가 커서 메모리를 많이 잡아먹다보면 메모리 부족으로 앱이 죽어버리는 경우가 생긴다고해요. 이러한 현상을 줄이고자 이미지 사이즈를 줄여 다시 만들어내는데 이것을 이미지 리사이징이라고 해요! 이미지작업을 위해서 사용할 ..
[Swift] App Version정보 가져오기
·
iOS/Swift
안녕하세요 욱승입니다. 이번포스팅 에선 App version을 가져오는 함수를 구현해보겠습니다. var version: String? { guard let dictionary = Bundle.main.infoDictionary, let version = dictionary["CFBundleShortVersionString"] as? String else {return nil} return version //1.0.0 } var build: String? { guard let dictionary = Bundle.main.infoDictionary, let build = dictionary["CFBundleVersion"] as? String else {return nil} return build //1 }
[Swift] privacy-sensitive 에러 메시지 ImagePicker 이슈
·
iOS/Swift
안녕하세요 욱승입니다. 오늘은 privacy-sensitive 에러시 해결방안을 알아보겠습니다. 우선 오류 메시지 해결방안 => Info.plist에 Privacy - Photo Library Usage Description에 내용을 넣어줘야함 (앱이 사진에 접근하려는데 허용 하겠냐는 팝업에 대한 Description) 혹은
[Swift] defer 문이란?
·
iOS/Swift
안녕하세요 욱승입니다. 이번 포스팅에선 defer 블록에대해 알아보겠습니다. defer 블록은 함수나 메소드에서 코드의 흐름과 상관없이 가장 마지막에 실행되는 블록입니다. 지연 블록이라고 부르기도 하는 이 블록에 작성된 구문은 작성된 위치에 상관 없이 항상 함수의 종료 직전에 실행되기 때문에, 종료 시점에 맞추어 처리해야 할 구문이 있다면 우리는 어디에작성해야 할지 고민하지 않고 defer 블록에 넣어두기만 하면 됩니다. 실제로 이 블록은 함수에서 사용된 각종 리소스의 처리나 해제, 연결 종료 등의 구문을 처리하는 용도로 유용하게 사용됩니다. defer 특성 1. defer 블록은 작성된 위치와 순서에 상관없이 함수가 종료되기 직전에 실행된다. 2. defer 블록을 읽기 전에 함수의 실행이 종료될 경우..
[Swift] Left side of mutating operator isn't mutable: 'count' is a 'let' constant, In-out 파라미터 사용 방법
·
iOS/Swift
안녕하세요 욱승입니다. 이번시간에는 In-out 파라미터에 대해 알아보겠습니다. 오류 캡쳐본 원인 전달받은 파라미터를 함수 내부에서 변경하려고 시도하면 컴파일 에러가 발생함. Swift에서 전달받은 파라미터는 상수(let)으로 취급하기 때문. 해결방안 inout 키워드를 사용하면 전달받은 파라미터를 함수 내부에서 변경할수 있음 ! 예제코드 차이가 보이시나요? 1. 호출부 변수 앞에 '&' 2. 함수 타입 앞 inout 이런식으로 함수 내부에서 전달받은 파라미터 값을 변경할 수 있습니다!
[Swift] Set 집합 기본 집합 연산 정리
·
iOS/Swift
안녕하세요 욱승입니다. 이 포스팅에선 Set의 기본 집합 연산 정리에 대해 알아보겠습니다. 예제코드 var oddDigits : Set = [1, 3, 5, 7, 9] // 홀수 집합 let evenDigits : Set = [0, 2, 4, 6, 8] // 짝수 집합 let primeDigits : Set = [2, 3, 5, 7] // 소수 집합 oddDigits.intersection(evenDigits).sorted() // [] oddDigits.symmetricDifference(primeDigits).sorted() // [1, 2, 9] oddDigits.union(evenDigits).sorted() //[0, 1, 2, 3, 4, 5, 6, 7, 8, 9] oddDigits.subtra..
[Swift] 싱글톤 패턴(Singleton Pattern)
·
iOS/Swift
안녕하세요 욱승입니다. 이 포스팅에선 싱글톤 패턴에 대해 알아보고 Swift예시를 보며 이해하는 시간을 가지겠습니다! 1. 싱글톤 패턴(Singleton Pattern) 이란? 소프트웨어 디자인 패턴에서 싱글턴 패턴(Singleton pattern)을 따르는 클래스는, 생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴한다. 이와 같은 디자인 유형을 싱글톤 패턴(Singleton Pattern)이라고 한다. 주로 공통된 객체를 여러개 생성해서 사용하는 DBCP(DataBase Connection Pool)와 같은 상황에서 많이 사용된다. 객체의 인스턴스가 오직 1개만 생성되는 패턴을 의미 !! 2. 싱글톤 패턴의 장단점 장..
[Swift] 구조체와 클래스 차이 (Difference between struct and class)
·
iOS/Swift
안녕하세요 욱승입니다. 오늘은 구조체와 클래스차이에 대해 알아보겠습니다. 요약 struct - 복사 개념 - 참조하는 값이 바꿔도 기존 값에는 영향이 없음 class - 공유 개념 - 참조하는 값이 바뀌면 기존 값도 영향을 받아 바뀜 class와 struct의 공통점 값을 저장하기 위한 프로퍼티를 정의할 수 있음 기능을 제공하기 위해 메소드를 정의할 수 있음 subscript 문법을 이용해 특정 값에 접근할 수 있음 생성자를 사용해 초기 상태를 설정할 수 있음 기본 구현에서 기능을 확장할 수 있음 Protocol을 채택하여 기능을 설정할 수있음 class(클래스) 참조 타입 ARC로 메모리 관리 같은 클래스 인스턴스를 여러 개 변수에 할당한 뒤 값을 변경시키면 할당한 모든 변수에 영향을 줌 상속 가능 타..
[Swift] 난수 생성
·
iOS/Swift
안녕하세요 욱승입니다. 오늘은 난수 생성을 알아보도록 하겠습니다. 코딩을 하다보면 난수를 생성할 일이 생기는데요. 보통 암호화나 알고리즘에 주로 쓰이죠 예시를 보시죠 var randomInts: [Int] = [Int]() // Int배열 선언 for _ in 0..
[Swift] 3항 연산자, 삼항 연산자
·
iOS/Swift
안녕하세요 욱승입니다. 오늘은 삼항 연산자에 대해 알아보겠습니다. 🧑🏻‍💻 삼항 연사자란? 물음표(?) 앞의 조건식에 따라 결괏값이 참(true)이면 반환값1을 반환하고, 결괏값이 거짓(false)이면 반환값2를 반환합니다. 이때 반환값에는 값뿐만 아니라 수식, 함수 호출 등 여러 가지 형태의 명령문이 올 수 있습니다. 🧑🏻‍💻삼항 연사자를 쓰는 이유? 이유는 간단합니다. if문, switch문, while문과 같이 조건절을 쓰지 않고도 코드를 간결하게 정리가 가능합니다. 즉, 보기가 편하다.. 이거죠 어디서 들은건데 남들이 볼때 한번에 이해할수있는 코드가 제일 좋은 코드라네요 허허.. 남들이 볼때 한번에 이해 == 클린코드 이렇게 글로만 풀어 봤을때는 감이 잘 안오실탠데요 var isBlack : Bo..
욱승
'iOS/Swift' 카테고리의 글 목록 (2 Page)