앱/iOS(Swift)62 [Swift] 클로저 이해하기위해 메모 self.loadImage2(urlString: hasURL) { image in cell.movieimageView.image = image } func loadImage2(urlString: String, completion: @escaping (UIImage?) -> Void){ networkLayer.request(type: .justURL(urlString: urlString)) { data, response, error in if let hasData = data { DispatchQueue.main.async { //async로 클로저가 나가기 때문에 이스케이프를 사용하는건가? completion(UIImage(data: hasData)) } return } //살패 했을때도 메모리를 계속 .. 2022. 3. 14. [CS] 동기 비동기, 직렬 동시 동기 Sync: 메인스레드에서 다른스레드에게 작업 시키고 끝날때 까지 기다림 비동기 Async: 메인스레드에서 다른스레드에게 작업을 시키고 끝날때 까지 기다리지 않음 ->작업을 보낸 시점에서 기다릴지 말지 직렬 Serial: 단 하나의 쓰레드로만 작업을 보내는 대기열 동시 Concurrent: 여러개의 다른스레드로 작업을 보내는 대기열 -> 쓰레드를 1개만 사용할지 여러개 사용할지 GCD: 멀티스레딩을 쉽게하기위해서 애플에서 제공하는 API main Thread에서 하던일들을 queue에 보내주면 적절히 생성후 분배해주는 기능 메인 동기-> GCD 에서 직렬 사용하면 -> 쓰레드1 한개만 사용 -> 메인은 쓰레드1 Task끝날떄 까지 기다림 메인 동기-> GCD 에서 동시 사용하면 -> 쓰레드 여러개 사.. 2022. 3. 14. [Swift] 일급객체 일급객체 1. 변수나 상수에 저장및 할당할 수 있어야함 func a() { print("a") } let b = a 2. 파라미터로 전달할 수 있어야함 func c(_ ac:Int, _ s: (Int) -> Int){ print(s(ac)) } c(1,a) 3. 함수, 객체 에서 return 할 수 있어야함 func d(_ ac:Int) -> (Int) -> Int{ return a } print(d(1)(2)) 2022. 3. 6. [Swift] 테이블뷰 cell attributedText 사용시 다음 cell까지 코드가 적용되는 문제해결 cell 사용중 true된 cell 만 취소선을 긋고, 회색으로 만들고 싶어서 코드 적용 시켰더니 그다음 cell 까지 같이 적용이 되는 오류가 있었습니다 찾아보니 cell이 재사용 되기 때문에 이런 문제가 있다고 합니다 cellForRowAt으로 cell datasource를 가져올 때 첫부분에 let cell = tableView.dequeueReusableCell(withIdentifier: "TodoCell", for: indexPath) as! TodoCell cell.titleLabel.attributedText = nil cell.titleLabel.text = nil 사용하니 다음 cell은 중복 적용이 되지 않았습니다 2022. 2. 22. [Swift] 프로토콜 프로토콜: API를 더욱 간결하게 표현하는 방법이다. 타입이다 프로토콜이 하는일: 내가 API를 갖도록 해주는데 클래스나 구조체를 완전하게 구현하는 대신에 클래스와 구조체가 구엇에 대한것인지만 밝혀두는것. 그냥 메소드 묶음같은것이다 프로토콜은 선언된 메소드와 프로퍼티들로 된 집합체일 뿐이다. 프로토콜은 프로토콜을 실행하는 클래스 안에서 실행된다 1. 프로토콜 선언: 프로토콜에 들어갈 메소드와 프로퍼티를 선언하는 작업 2. class, struct, enum이 이 프로토콜을 실행하겠다고 선언 3. 프로토컬에 선언된 작업을 구현 -> 추가예정 2022. 2. 18. [Swift] Extension extension: 메소드나 프로퍼티를 다른클래스에게 추가하게 해준다. 클래스뿐만 아니라 구조체, 열거형에도 익스텐션 사용가능 모든 메소드나 프로퍼티를 다시 실행할 수는 없다. 또한 추가한 모든 프로퍼티는 연산프로퍼티여만한다. 익스텐션은 어떤것도 저장될 수 없다. 순전히 코드를 추가할 뿐 저장은 되지 않는다 2022. 2. 17. 이전 1 2 3 4 5 ··· 11 다음