저는 초보자입니다. 그래서 제 프로젝트에서 저는 거의 모든 컨트롤러에서 사용했던 여러 객체/모델을 사용했습니다. 내 질문은, 컨트롤러 (컨트롤러를 통해)가 업데이트 될 때 자동으로 개체/모델을 업데이트하는 방법입니다.여러 컨트롤러에서 개체/모델 업데이트하기
올바른 수행 방법은 무엇이며 어떻게 진행할 수 있습니까?
저는 초보자입니다. 그래서 제 프로젝트에서 저는 거의 모든 컨트롤러에서 사용했던 여러 객체/모델을 사용했습니다. 내 질문은, 컨트롤러 (컨트롤러를 통해)가 업데이트 될 때 자동으로 개체/모델을 업데이트하는 방법입니다.여러 컨트롤러에서 개체/모델 업데이트하기
올바른 수행 방법은 무엇이며 어떻게 진행할 수 있습니까?
개념은 Pass By Value & Pass By Reference
입니다.
귀하의 질문에 가장 잘 맞는 해결책은 Pass By Reference
유형을 사용하는 것입니다.
우리가 Swift programming language
에 대해 이야기하는 경우.
class
은 참조 유형 & struct
입니다. 값 유형입니다.
따라서 모델 클래스는 class
유형으로 작성되어야합니다.
코드 예. 당신은 당신이 아이디어를 시도 할 수 있습니다 값이 “Modified”
될 것입니다 다시 FirstViewController
에 가서 배열의 first element
을 선택하면
class Dog {
var breed : String = ""
var sub_breed = [String]()
init(_breed:String,_sub_breed:[String]) {
self.breed = _breed
self.sub_breed = _sub_breed
}
}
FirstViewController:
var dogs : [Dog] = [Dog(_breed: “Original”, _sub_breed: [“subBreedType1”, “subBreedType2”])]
SecondViewController: // You are passing reference of dogs to SecondVC
var dogs : [Dog] = []
dogs[0].breed = “Modified”
이제,
SecondViewController
에서
breed name
의 값을 변경했습니다.
기타 해결책 : 의 Singleton object
감사합니다.
컨트롤러의 개체에 옵저버를 추가하고 메서드를 구현하여 viewController UI를 업데이트해야합니다. –
동일한 모델이 모든 곳에서 사용되는 경우 왜 해당 모델의 singelton 개체가 없는지 확인하십시오. 이렇게하면 어디서 수정하든 변경 사항은 모든 컨트롤러에서 얻을 수 있습니다. 추적 할 수없는 버그가 발생할 수 있으므로 요구 사항을 확실히 알고있는 경우에만 수행하십시오. –
모델을 작성하는 방법, 모델 개체를 사용하는 방법 및 모델을 업데이트하는 방법과 같은 일부 코드를 업데이트 할 수 있습니까? –