본문 바로가기

앱/iOS(Swift)62

[스위프트] NSOperationQueue 와 GCD Queue 의 차이점 ios에서 멀티 스레딩 을 위한 API: NSOperation, GCD NSOperation은 GCD보다 약간의 오버헤드가 더 발생되고 느리지만 GCD는 직접 처리해야 하는 작업들을 지원 하고 있기 때문에 (KVO관찰(key-velue observer), 작업취소 등등) 감수하고 사용할만하다. NSOperation: Obj-C 기반으로 만들어진 high-level API NSOperationQueue operation Queue에 추가된 작업은 작업이 완료될 때까지 대기열에 남아 있다. 작업이 추가된 후에는 대기열에서 직접 제거할 수 없기 때문에 모든 작업이 끝나지 않은 상태에서 Operation queue를 중지시키면 메모리 릭이 발생할 수 있다 하이 레벨이기 때문에 GCD 에서할 수 없는기능(ex: .. 2022. 1. 12.
[스위프트] Bounds, Frame 차이점 Frame와 bounds는 View의 위치와 크기를 나타낸다 Frame: Super View의 좌표계를 기준으로 view의 위치,크기를 나타냄, super view보다 얼마나 떨어져 있느냐를 나타낸다. size는 View영역을 모두 감싸는 사각형 Bounds: 자기 자신의 좌표계를 기준으로 view의 위치,크기를 나타냄, size는 view영역 그자체 Super View: 내가 사용하는 View의 윗계층이다. 최상의 계층x 2022. 1. 12.
[스위프트] 프로퍼티 감시자 willSet: 프로퍼티의 값이 변경되기 전에 호출되서 변경되기전 값을 매개변수로 갖는다. didSet: 프로퍼티의 값이 변경된 후 호출되어서 변경된 후의 값을 매개변수로 갖는다. class Person{ var money: Int = 8000 { willSet { print("일을하면\(money)원에서 \(newValue)9000원이 될 것 같다") } didSet { print("일을해서\(money)원에서 \(oldValue)원이 됐다") } } } let work: Person = Person() print("-----------------------------") work.money = 9000 결과 ----------------------------- 일을하면8000원에서 9000이 될 것 .. 2022. 1. 12.
[스위프트] Array, Tuple, Set, Dictionary 집합(Array): 순서 존재 / 변경 가능 var a: Array= ["a","b","c"] var a: [String]= ["a","b","c"] a[2] 튜플(Tuple): 순서 존재 / 생성된 후 변경 불가능 var a : (String, Int, Double) = ("a",1,12.5) person.1 세트(Set): 순서 없음 / 키값으로만 존재/ 중복 불가 , 집합관계 표현할때 사용 var a: Set= ["a","b","c"] 딕셔너리(Dictionary): 순서 없음/ 키와 값으로 존재 / 키 중복 불가 var a :[String:Int] = String:Int var a : StringIntDictionary = StringIntDictionary()위랑 같다 var a :[Stri.. 2022. 1. 12.
[Swift] 스위프트란 무엇인가 스위프트 미국 애플 회사가 iOS(Internetwork Operating System) 와 오에스텐(OS X)프로그래밍을 위해 개발한 프로그래밍 언어이다. 아이폰 앱 개발을 위한 기존 오브젝티브-C언어와 공존할 목적으로 만들었다 Object-C 과거 iOS나 OS X 앱을 개발 하기 위해서 사용한 언어이다. 기존 C언어에 객체지향의 성격을 섞은 언어이다 스위프트는 Object-C 에서 C언어의 특성을 줄이고 객체지향 언어ㅢ 성격을 강화한 언어이다 특징 사용이 간편한 오픈소스이다 프로그램 사용자의 문법적 실수를 줄이는 구문들이 존재하기 때문에 안전하게 프로그래밍을 구현할 수 있다 Object-C보다 수행능력이 빠르다. 실행 속도의 최적화와 컴파일러의 지속한 개량을 ㄷ통해 더욱 빠른 컴파일 성능을 구현해 .. 2022. 1. 12.
Xcode 시뮬레이터, Playground등 사용시 Spotlight cpu 100% 되는 현상 개발공부를 하기위해서 playground를 만들었는데 활성상태에서 Spotlight가 100% 이상으로 뛰었다 노트북의 발열도 너무심해서 키보드 윗부분이 너무 뜨거웠다. 노트북을 껐다도 켜보고 Spotlight를 꺼도 Xcode를 껐다 키면 다시 Spotlight가 켜져서 노트북 온도가 다시 올라갔다. 그래서 애플 개발자 포럼에서 나와 같은 증상이 있는 사람을 찾아 봤는데 Xcode를 13버전으로 업데이트 하고부터 생긴것 같았다 많은 개발자들이 이문제가 있는것 같았다. 그중 한 개발자가 고치는 법을 올려줬다. 고치는 방법은 스크립트 코드를 적용해주는 것이다 방법 ~/Library/Developer/ 에서 시뮬레이터, 미리보기 시뮬레이터, playground가 갈라져있다 내가 고친 방법은 ~/Library.. 2021. 12. 23.