2017-11-04 7 views
0

여러보기 컨트롤러에서 동일한 데이터가 필요한 앱이 있습니다. 현재이 데이터에 액세스하려면 performSegue를 사용하여 앱을 탐색하면서 한 컨트롤러에서 다른 컨트롤러로 클래스 인스턴스를 보냅니다.CoreData 또는 Segue에 액세스하기위한 클래스 인스턴스

내 질문은 : 대신 CoreData를 사용하여 각보기 컨트롤러의 데이터에 액세스하는 코드를 깨끗하게 정리할 수 있습니까? performSegue를 사용하는 대신 ViewDidLoad에서 coreData를 쿼리 한 다음 CoreData에서 검색 한 문자열을 클래스 인스턴스 객체로 변환 할 수 있습니다.

+1

NSManagedObject 인스턴스를 'prepareForSegue'를 통해 전달합니다. 그렇게하면 뷰 스택을 통해 다시 탐색 할 때 데이터를 다시 가져 오는 것에 대해 걱정할 필요가 없습니다. – Paulw11

+0

Paul 감사합니다! 그게 내가 할 일이다. – bcupp

답변

0

설명대로 관리 대상 개체를 전달하는 것은 종속성 주입 소프트웨어 디자인 패턴에 대한 하나의 접근 방식이며 일반적으로 각보기 컨트롤러가 필요한 개체를 조회하는 것보다 좋습니다.

이러한보기 컨트롤러가 일 때이 필요합니까? 즉, 관리 객체를 전달할 수 없거나 어떤 이유로 올바른 객체를 전달할 수없는 경우에도 사용됩니까? 그렇다면 그들이 관리 객체를 검색 할 수있는 것이 합리적 일 수 있습니다. 그렇지 않은 경우 중복 코드가 발생하고 복잡성이 증가하여 이점이 없습니다.

즉, 이미 옳은 일을하고있는 것처럼 들리며, 설득력있는 이유를 알지 못하면 설명을 변경해서는 안됩니다.

+0

감사합니다. Tom. 그게 최선의 선택 인 것 같습니다. CoreData를 모든 것에 사용한다는 생각에 너무 흥분한 것 같습니다. – bcupp