-
Notifications
You must be signed in to change notification settings - Fork 6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Fix] #165 - isEditMode 버튼 토글 및 activityRecordList 초기화 문제 해결 #166
The head ref may contain hidden characters: "fix/#165-\uB0B4-\uB7EC\uB2DD-\uAE30\uB85D-\uC0AD\uC81C-\uBB38\uC81C-\uD574\uACB0"
[Fix] #165 - isEditMode 버튼 토글 및 activityRecordList 초기화 문제 해결 #166
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
리뷰 확인해주세요!
let activityRecordInfoVC = ActivityRecordInfoVC() | ||
activityRecordInfoVC.isEditMode = false | ||
return |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
171줄 보면 deleteAlertVC에서 버튼 터치 액션을 지정해주고자 delegate도 사용하고 있고 여기에서는 클로저도 사용해서 2중으로 지정해주고 있네요
하나로 통일해야 할 것 같습니다.. 가능하면 delegate는 제거하고 이 클로저에서 삭제하는 함수 실행을 넣으면 될 것 같아요!
그리고! 지금처럼
let activityRecordInfoVC = ActivityRecordInfoVC()
activityRecordInfoVC.isEditMode = false
이렇게 하면 아예 새로운 ActivityRecordInfoVC를 만들고 그 뷰의 edit모드를 설정하는 거라 현재 사용자가 보고 있는 ActivityRecordInfoVC에는 아무런 영향이 없을거에요
그냥 저거 대신에 self?.isEditMode = false
로 직접 현재 인스턴스의 프로퍼티를 변경하면 되지 않을까요?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
아 클로저 안에서 현재 VC에 접근하려면 그냥 self?.하면 되는 거였군요....... 감사합니다
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
네 맞아요!
그래서 delegate와 클로저를 같은 용도로 사용할 수 있는거에요!
하위 뷰에서 동작할 작업을 부모 뷰(self)에서 지정해준다는 점이 핵심인거죠!
하지만 이렇게 클로저로 self를 넣을 수 있다는 점으로 인해 발생하는 문제가 바로 retain Cycle이고 ARC와 연관이 있습니다.
이 부분은 정말 중요하니 별도로 공부해보면 좋을거에요!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
아!! 그랫군요 이해햇습니다 !! 그 부분 공부해볼게요!!
@@ -135,6 +137,7 @@ extension ActivityRecordInfoVC { | |||
self.deleteRecordList.append(activityRecordList[indexPath.row].id) | |||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
self.deleteRecordList = selectedRecords.map { activityRecordList[$0].id }
이렇게 for ~ in 대신에 고차함수를 사용해 깔끔하게 작성하는 방법도 있습니다. 성능은 동일해요!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
와아!!! 감사합니다
self?.wantsToDelete() | ||
self?.isEditMode = false | ||
return |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
🌱 작업한 내용
🌱 PR Point
📸 스크린샷
생략
📮 관련 이슈