본문 바로가기

분류 전체보기41

[iOS] TableViewCell에서 layoutMarginsGuide 사용 테이블뷰의 Custom Cell을 설정할 때 처음에 제약조건을 ContentView에만 맞췄다. private func configureCellConstraint() { NSLayoutConstraint.activate([ contentStackView.leadingAnchor.constraint(equalTo: contentView.leadingAnchor), contentStackView.topAnchor.constraint(equalTo: contentView.topAnchor), contentStackView.trailingAnchor.constraint(equalTo: contentView.trailingAnchor), contentStackView.bottomAnchor.constraint(e.. 2024. 1. 6.
[iOS] CoreData에서 특정 Entity 내부에 있는 Entity의 특정값을 가져오고 싶을 때(NSPredicate) 코어데이터를 사용하는 방법을 연습하다가 생긴 일이다. 먼저 entity로는 UserMO와 JokeMO 두개가 있다. User와 Joke는 Model도 있다. 여기서 보면 알 수 있듯이 User는 Joke 배열을 가지고 있다. 때문에 특정한 User의 특정 카테고리를 갖는 Joke만 선별하고 싶은 과정에서 문제가 있었다. func fetchWithPredicate(currentUser: User, currentCategory: Category) -> [Joke] { var jokes = [Joke]() let fetchRequest: NSFetchRequest = UserMO.fetchRequest() let idPredicate = NSPredicate(format: "id = %@", currentUs.. 2023. 12. 20.
[야곰 아카데미]커리어 스타터 9기 회고 안녕하십니까, 민트입니다. 😈 야곰 커리어 스타터 9기에 대해 짧은 회고를 적어보았습니다.야곰 아카데미 9기로서의 6개월이 끝났다. 바로 서포터즈를 시작해서 그런지 수료가 별로 와닿지는 않는다. 동기들도 아직까지는 다같이 스터디도 하면서 디코에 남아있어서 그런걸까? 그저 수료를 했으니, 더 열심히 플젝을 해서 서포터즈가 끝날 때 쯤에는 취업을 해야지! 정도의 목표의식인 것 같다. 아니 더 솔직하게 말해보자면 졸업했을 때의 느낌처럼 더 이상 보호받지 못하고 취업 시장에 내던져 진 기분이랄까.  야곰에서의 시간은 여러모로 많은 것들을 배우는 시간이었다. 대부분이 언니오빠들이라 그런지 첫 사회생활 아닌 사회생활에 발을 딛은 느낌이 났다. 다 같이 공부를 하러 와 있기에 완전한 회사에서의 모습들은 아니지만, .. 2023. 11. 20.
[iOS] storyboard에서 custom init을 한 경우 required init이 필요한 이유 view controller에서 init을 생성해주려면 왜 required init이 필요할까? required init은 필수 생성자로 부모 클래스에 생성되어 있다면 자식 클래스에서는 필수로 생성해주어야 한다. 단, 지정 생성자를 따로 작성하는 경우에만. 부모 클래스의 생성자들을 그대로 받을 경우에는 따로 생성해 줄 필요가 없다. view controller는 UIViewController를 상속받는다. class firstViewController: UIViewController 그리고 UIViewController는 NSCoding이라는 프로토콜을 채택하고 있다. class UIViewController: NSCoding 이 NSCoding 프로토콜에는 required init으로 NSCoder를 .. 2023. 11. 9.
[Swift]super.init()이 반드시 필요했던 경우 안녕하십니까, 민트입니다. 😈 super.init()에 대해서 이것저것 찾아보다 신기한 경우를 찾았습니다.class A { init(some: String) { print("a") }} A와 같이 매개변수가 있는 init의 경우에는, 상속을 해서 내부에 변화를 줄 때class B: A { override init(some: String) { super.init(some: some) print("b") }}반드시 super.init을 불러야 한다는 에러 메세지가 떴습니다. 2단계 초기화에서 보면, customize된 초기화는 1. superClass와 subclass가 있을 때 subClass 초기화 2. superClass 초기화 순으로 올라간.. 2023. 11. 8.