TIL

59일차 TIL

h_luz 2024. 5. 22. 22:54

 

모의면접 시뮬레이션 Q&A

 

Q6. 두 검색 결과를 datetime 필드를 이용해 정렬하여 출력하는 방법을 설명해 주세요.

A: 먼저, 두 검색 결과 리스트를 하나의 리스트로 병합합니다. 그다음, datetime 문자열을 Date 객체로 변환하기 위해 DateFormatter를 생성합니다. 병합된 리스트에서 각 항목의 datetime 문자열을 Date 객체로 변환한 후, 이를 기준으로 리스트를 정렬합니다. 정렬된 리스트를 원하는 형식으로 출력하면 두 검색 결과 리스트를 datetime 필드를 기준으로 합치고 정렬할 수 있습니다.

 


 

git add .

잘못했을 때!

git reset .

을 해주면 add 한 거 없어짐 ㅎㅎ


 

단어장에서 단어장 삭제 시 단어가 남아있는 오류가 있다.

 

ㄴ NSManagedObjcet를 사용하여 CoreData에서 관계형 데이터를 삭제

: 특정 엔티티가 삭제될 때 연결된 엔티티들의 처리를 결정할 수 있다. 'cascade' delete rule을 사용하면, 단어장을 삭제할 때 자동으로 해당 단어들도 함께 삭제할 수 있음

 

Delete Rule 설정

 

1. Cascade (캐스케이드)

: 부모 객체가 삭제될 때, 그와 연관된 자식 객체들도 함께 삭제 ( ex. 단어장 삭제 시 단어들도 삭제 )

 

2. Deny (거부)

: 부모 객체가 삭제되려 할 때, 자식 객체가 존재하면 삭제 거부 ( ex. 단어장에 단어가 존재하면 삭제 거부 )

 

3. Nullify (널리 파이)

: 부모 객체가 삭제될 때, 자식 객체와의 관계를 nil로 설정 ( 단어장을 삭제 시 단어장에 속했던 단어들의 단어장 참조가 nil이 됨 )

 

4. No Action (아무 동작 없음)

: 부모 객체가 삭제되어도 자식 객체에 아무 영향도 주지 않는다. 자식 객체는 그대로 남아 있음.

    ㄴ 이 경우, 관계 무결성을 유지하려면 수동으로 자식 객체를 처리해야 한다.

 

단어장 -> 단어 관계에서 delete rule을 Cascade로 설정

 

 

이 설정을 통해 단어장을 삭제할 때 자동으로 관련 단어들도 삭제되고, 단어를 삭제할 때 단어장에는 영향이 없게 됨

 

단어가 저장될 때 '단어장과 연결되는 관계가 저장되어 있는 데이터'가 같이 저장되어야 한다…! ㅠ 

우리는 사실 단어장의 이름이 필요하다고 생각해서 단어를 저장할 때 단어장의 이름으로 저장했는데, 그렇게 저장하니까

 

지금은 보이지만 BookCase 값이 null로 들어갔었다! 그래서 아마 단어장 엔티티가 자기 자식을 찾지 못해서 같이 삭제가 안되었던 거 같은데,, 이 단어장과 단어를 연결하는 값은 Data값으로 되어있는 거 같아서 단어장 이름은 따로 String값으로 넘겨주는 작업을 해주니까 다른 단어장 이름을 사용하는 코드에 영향을 주지 않고, 잘 실행되는 것을 볼 수 있었다..! 휴 😮‍💨 다행이당...

 


 

이제 입력창에서 텍스트 필드를 눌렀을 때 키보드가 텍스트 필드를 가리는 문제를 해결하기 위한 작업 시작!

https://ios-daniel-yang.tistory.com/97

 

[Swift/TIL #21] 키보드가 화면을 가릴 때, Y축으로 뷰 이동 방법

[TIL #21] 2023 / 05 / 08 TextField 나 TextView 등 터치 이벤트로 키보드가 올라올 때, 키보드가 텍스트 필드를 가리는 현상이 발생할 때가 있습니다. 이런 이슈를 방지하는 방법을 간단히 알아봅시다. 방

ios-daniel-yang.tistory.com

여기서 보고 공부해서 할 예정

 

 

https://velog.io/@club2548/Swift-%ED%82%A4%EB%B3%B4%EB%93%9C%EA%B0%80-%ED%99%94%EB%A9%B4%EC%9D%84-%EA%B0%80%EB%A6%B4-%EB%95%8C-%EB%B7%B0%EB%A5%BC-%ED%82%A4%EB%B3%B4%EB%93%9C-%EC%9C%84%EC%AA%BD%EC%9C%BC%EB%A1%9C-%EC%9D%B4%EB%8F%99%EC%8B%9C%ED%82%A4%EB%8A%94-%EB%B0%A9%EB%B2%95NotificationCenter