본문 바로가기
728x90

분류 전체보기86

[Swift/UIKit]CollectionView/TableView Cell안에 버튼넣고 이벤트주는법 간단합니다. @objc 메서드 만들고 버튼에서 addTaget 설정만 해주면 됩니다. 1. 컬렉션뷰 셀 부분에 addTaget주기 func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell { let cell = collectionView.dequeueReusableCell(withReuseIdentifier: CollectionViewCell.identifier, for: indexPath) as! CollectionViewCell cell.goBtn.addTarget(self, action: #selector(self.goBtnClicked), for: .. 2023. 10. 24.
[Swift] Concurrency [1] Concurrency Swift Concurrency는 비동기 프로그래밍을 지원하기 위한 도구로, 코드를 간결하고 효율적으로 작성할 수 있게 도와준다. 이 기능은 async와 await 키워드를 사용하여 비동기 작업을 선언하고 처리할 수 있습니다. Swift 5.5에서 새로 나온 동시성 모델이며, 그전에는 GCD와 completion handler를 사용해 비동기 프로그래밍을 해야 했다. GCD 와 Concurrency의 차이는 뭘까? GCD는 Swift가 나오기 전인 Objective-C부터 존재하던 개념으로, 동시성 프로그래밍에 대한 높은 수준의 추상화를 제공한다 Serial DispatchQueue는 한 번에 하나의 태스크를 순차적으로 실행하고, concurrent DispatchQueue는 많은 .. 2023. 10. 23.
[UIKit] translatesAutoresizingMaskIntoConstraints 왜 오토 레이아웃을 사용할 때는 translatesAutoresizingMaskIntoConstraints = false를 할까? textField.translatesAutoresizingMaskIntoConstraints = false 오토레이아웃을 잡을때, 기계적으로 해당코드를 작성하곤 했다. 그러다가 문득.. 왜 이걸 쓰는걸까? 난 왜 이걸 예제를 따라 당연하다는듯이 적었을까를 생각했다.. AutoresizingMask란, superview의 영역이 바뀔 때 하위 뷰의 크기를 어떻게 조정할지에 대한 정보를 가지고 있는 정수형 비트마스크라 한다. 해당 개념은 여러 속성을 부여하여 슈퍼뷰의 크기 변화에 따라 서브 뷰의 width, height 혹은 leading, top, trailing, bottom.. 2023. 10. 18.
[Swift] Optional Optionals 이란? "값이 없음"을 표현하는 옵셔널 nil Optional type nil을 사용할 수 있는 타입과 사용할 수 없는 타입을 구분하고, 사용할 수 있는 타입을 가리켜 옵셔널 타입이라고 부른다 자료형 뒤에 ? 를 붙여 옵셔널 타입으로 만든다 Non - optional Type 무조건 값을 가져야한다. let str: String = "Non-optional Type" let optionalStr: String? = nil Optional Unwrapping (Forced Unwrapping) Optional Unwrapping을 이용하면 옵셔널타입을 논옵셔널 타입으로 변환 할 수 있다 Optional Unwrapping을 사용할려면 절대 Optional Unwrapping을 하고자하는 .. 2023. 10. 17.
[Swift] Protocol 프로토콜 [2] 선택적 요구 사항 Optional Requirements @objc -> Objective - C에서도 사용가능하도록 하는 키워드 Optional 은 멤버를 선택적 멤버로 변경하게 하는 것이다 프로토콜 키워드 앞에 @objc 추가, 멤버 선언 앞에도 추가해야지 사용가능하며, 멤버 선언 시 optional키워드를 추가해야한다 AnyObject를 자동 상속 -> 클래스 전용 프로토콜이 된다 @objc protocol 프로토콜 이름 { @objc optional 요구사항들 } 프로토콜 확장 Protocol Extension 프로토콜 역시 type이기 때문에, extension으로 확장가능 프로토콜 확장시, 프로토콜을 채용한 모든 type에 추가 Extension 사용시, 프로토콜에 구현을 추가 -> 프로토콜을.. 2023. 10. 16.
DX Sprint 2023 해커톤 회고록 [2] https://jife98.tistory.com/26 DX Sprint 2023 해커톤 회고록 [1] 인스타 광고를 보고 참여해야겠다는 생각이 들어 바로 신청했던 DX Sprint 2023 해커톤에 iOS개발자로 참여했던 경험을 써보겠습니다. 혹여나, 열릴지 모르나 DX Sprint 2024를 신청할려고 하시는 분들 jife98.tistory.com 현생에 치어살다보니.. 한달만에 글을 쓰네요. 지인들이 글쓴걸보고 빨리 2탄을 올려달라해서, 후다닥 쓰게 됩니다. 부디 Dx2024가 열린다면, 제 글이 부디 도움이 되시길 우리는 팀을 결성하고 기획 회의를 한다. PM분이 어느정도 원하는 서비스를 생각해오셔서, 해당 서비스를 기획하기로 했다. 바로 영양제 성분 알려주는 서비스 두둥.. 그런데 문제가 있었다... 2023. 9. 27.
728x90
반응형