전체 글
-
[Swift] Computed Property - get/setSwift/swift 문법 2024. 1. 3. 09:32
복잡하게 생각할 거 없이, 해당 프로퍼티의 값을 호출하는지. 설정하는지만 보면 된다. get 이 프로퍼티의 값을 호출할 때 실행되는 코드 값을 가져와야 하므로 return이 필수. set 이 프로퍼티의 값을 설정할때(할당) 할 때 실행되는 코드 class Person { var name: String = "ming" var alias: String { get { //alias의 값을 가져오면(print(min.alias)) 실행되는 부분 return name } set(name) { //alias의 값을 설정하면(min.alias = "min") 실행되는 부분 self.name = name print("\(name)은 민2") } } } var min = Person() print(min.alias) /..
-
애플 ABM(Apple Business Manager) 등록 기록, 애플 회사 기기 등록Swift 2023. 12. 22. 17:09
ABM이란? Apple Business Manager는 조직에서 iPhone, iPad 또는 Mac을 사용하든 IT 책임자가 콘텐츠를 손쉽게 대량으로 구매 가능. 타사 MDM(모바일 기기 관리) 솔루션과 호환되는 간편한 웹 기반 포털 애플 ABM 등록 매뉴얼 가. ABM 계정 만들기 나. APPLE의 확인 전화 진행 다. 기기등록 1. 쿠팡에서 구매한경우 2. 공식 리셀러에게서 구매한 경우 다-2의 경우는 등록 절차 필요 없음. Apple 고객 번호만 ABM에 등록하면 됨. 다-1(공식 리셀러 이외에서 구매한 경우)의 케이스를 기준으로 서술. 1. 등록할 기기가 아닌 다른 애플 기기에 apple configuration2앱 설치해놓기. (등록할 기기는 화면 켜서 로그인을 하지 않은 상태여야 함 – 이미 ..
-
lazy 코드 : 지연 초기화, 해당 프로퍼티 사용될 때 까지 초기화 되지 않음.Swift 2023. 12. 21. 23:46
private lazy var vStackView: UIStackView = { let view = UIStackView(arrangedSubviews: [ topLabel, bottomLabel ]) view.axis = .vertical view.spacing = -4 return view }() 위의 코드에서 lazy 키워드를 사용하여 vStackView를 선언하는 이유는 지연 초기화를 수행하기 위해서입니다. lazy 키워드를 사용하면 해당 프로퍼티에 대한 초기화가 처음 접근될 때까지 지연됩니다. 즉, 해당 프로퍼티가 처음으로 사용될 때까지 초기화되지 않습니다. 지연 초기화를 사용하는 이유는 다음과 같습니다: 성능 개선: vStackView 프로퍼티가 사용되지 않는 경우에는 초기화를 진행하지 않기 ..
-
[C] 문자열을 가리키는 포인터는 왜 char(문자)인가?code/C 2023. 12. 5. 22:28
char *s1 = "Hello"; 포인터는 해당 데이터의 "시작지점의 주소"이다. 그럼 끝점은 어떻게 아는가? NULL문자로 판단한다. NULL문자(\0)를 만나기 전까지의 char데이터를 가져옴 = String 문자열의 pointer는 pointer to char인것. // 포인터는 해당 데이터의 "시작지점의 주소"를 가리키는 역할을 합니다. 문자열의 경우, 널 문자('\0')를 만나기 전까지의 연속된 char 데이터를 가져옵니다. 널 문자는 문자열의 끝을 나타내는 역할을 하며, 문자열의 끝을 판단하기 위해 사용됩니다. 따라서, 문자열의 포인터는 char 형식을 가리키는 포인터로서, 해당 문자열의 시작 주소를 가리킵니다. 포인터를 사용하여 문자열을 접근할 때는 해당 포인터가 가리키는 주소부터 널 문자..
-
[SwiftUI]연속되는 뷰 넘기는 상황에서 이미지, 텍스트의 길이가 달라져서 위치가 고정되지 않는 문제Swift/SwiftUI 2023. 12. 5. 21:36
버튼 위의 text부분이 한줄이다가 2줄이니까 버튼의 위치가 변경되는 상황 Vstack에 쌓아서 샌겨난 현상. -> 위의 text부분의 frame을 고정해줘서 해결 Text("\(guideDataSet.imagesAndTexts[index - 1].text)") .frame(height: CGFloat.screenHeight*0.075) 참고로 screenHeight이 부분은 extension으로 선언해준 부분. extension CGFloat { static let screenWidth = UIScreen.main.bounds.width static let screenHeight = UIScreen.main.bounds.height } screenHeight를 미리 선언해놓고 쓰면 편하다. UIScre..
-
문자열 정렬 알고리즘 - 애너그램, 팰린드롬, 암호화 / 복호화Coding Test 2023. 12. 4. 21:59
sorted(s1) == sorted(s2) -> 정렬되므로 같은 문자열로 이루어진 문자(애너그램)인지 판별 가능하다. 팰린드롬(회문)Palindrome = 앞뒤가 똑같은 문자(말해말..) 파이썬에서의 슬라이스: a[3::2] ->3번째 인덱스부터 2씩 증가시키면서 마지막 요소까지 가져와 새 리스트를 만듦. s1[::-1] -> 마지막 요소부터 1씩 인덱스를 감소시키면서 요소를 가져와 뒤집은 문자열을 만들게된다. 파이썬 ord -> 아스키코드 반환 isdigit()-> 문자열에서 숫자만 남김 digit -> 0-9사이의 기호를 나타냄. s = "Buy 1 get 2 free" //[-1]부분이 마지막 글자만 뽑아냄 nl = [c for in s c.isdigit()[-1]] 암호 (Cipher) = 암호..
-
정렬 알고리즘Coding Test 2023. 12. 3. 20:40
정렬 알고리즘 : 데이터를 일정한 순서로 배치하는 것 1. 버블 정렬 for 문을 두번 사용해서 시간복잡도는 O(n^2) 배우기가 간단함 2. 삽입정렬 버블정렬보다는 효율적일지도? -> 어느정도 정렬이 되어있을 때의 시간복잡도가 O(n)으로 상당히 효율적임 3. 병합정렬 (Merge sort) 리스트를 계속해서 반으로 나눠 요소가 한 개뿐인 리스트로만 남았을 때, 이들을 올바른 순서대로 다시 합치는 재귀정렬 알고리즘. 🔶 O(logN) == O(log₂N)을 의미한다. O(n * log(n)) 의 시간복잡도 이진 검색이 정확히 O(logN) 알고리즘 방식으로 동작한다. 이진 검색을 빅 오 표기법의 관점에서 어떻게 설명할까? 배열의 크기가 3일 때 이진 검색은 2단계 배열의 크기가 7일 때 이진 검색은 3..