0

다소 일반적인 질문입니다. 인터페이스 (.h) 파일에 UIViewController의 인스턴스를 만들고 속성으로 선언하고 구현 파일 ( .m)에 사용하면 구현 파일 자체의 인스턴스를 만드는 것보다 현재보기에서 밀어 넣는 것이 어떤 차이가 있습니까? UINavigationcontroller에서 현재 뷰를 밀어 넣으시겠습니까?임 플레멘 테이션에서 UIViewController 인스턴스를 생성하는 것과 인터페이스 파일을 생성하는 것의 차이점은 무엇입니까?

감사합니다, 수밋 보통

답변

1

인터페이스에서 .h 파일을 사용하기 만하면 변수에 대한 선언이 있으며 클래스에 대한 참조이며 인스턴스가 아닙니다 ... 참조와 인스턴스의 차이가 서로 다르다는 것을 이해하십시오. .h 파일을 선언 할 때 .m 파일에서 해당 변수를 사용한다는 데 동의합니다. 그리고 우리는 그것을 instanciate 수 ... 또한 다른 2 답변은 또한 자신의 포인트를 가지고 있습니다 ....

1

당신이 정의하는 UIViewController 개 이상의 지점에 액세스해야 할 수 있습니다 또는 당신을 위해 유용 할 수 있기 때문에 당신 @ 인터페이스의 필드로 .H에, 유지 해당 컨트롤러에 대한 포인터 이것을 필요로하지 않는다면 간단히 .m에서 정의하고, 그것을 사용하고 릴리즈 (또는 자동 릴리즈) 할 수 있습니다.

+0

고마워 .... 나는 각각의 배경 이미지가있는 버튼이 격자가 있습니다. 이 버튼을 탭하면 viewController가 눌려져 큰 이미지를 표시 할 수 있습니다. 나는 또한 인접한 버튼 배경 이미지를 통과하기 위해 사용할 수있는 뷰에 툴바를 삽입하려고 생각했다. 확실히 UIViewController 인터페이스 파일에서 선언 된 필요합니다. 그게 맞습니까? – slonkar

+0

글쎄, 당신이 진짜로 그 컨트롤러에 대한 포인터를 유지해야 할 필요가 없다는 것을 설명했다면, 그 컨트롤러가 푸시 된 후 그것을 유지할 수 있습니다. 아마도 그것을 속성으로 정의하지 않고 .m에서 간단하게 만들 수 있습니다. 나는 당신의 요구를 오해했을지도 모른다. – Saphrosit

1

몇 가지 차이점이 있습니다. 이 속성을 생성하면 생성 된 코드에 유지/해제 로직이 내장됩니다.

또한 .H 파일의 필드 및 속성을 선언하면 멤버가 효과적으로 "공용"되어 다른 클래스에서 볼 수 있습니다. .M 파일에 정의 된 멤버 만있는 경우에는 자신의 클래스에서만 액세스 할 수 있습니다.

+0

많이 고마워 .... 나는이 각각에 배경 이미지가있는 버튼 격자를 가지고있다. 이 버튼을 탭하면 viewController가 눌려져 큰 이미지를 표시 할 수 있습니다. 나는 또한 인접한 버튼 배경 이미지를 통과하기 위해 사용할 수있는 뷰에 툴바를 삽입하려고 생각했다. 확실히 UIViewController 인터페이스 파일에서 선언 된 필요합니다. 그게 맞습니까? – slonkar

관련 문제