객체는 XIB 파일에 어떻게 정의되며 런타임에서 어떻게 생성됩니까?

StackOverflow https://stackoverflow.com/questions/1453807

  •  12-09-2019
  •  | 
  •  

문제

방금 Mac을 구입했는데 Cocoa 및 Cocoa를 사용하여 소프트웨어 개발을 탐색하기 시작했습니다. Xcode in Snow in Snow에서 강력한 Microsoft와 C# BackGrund에서 나온 Snow in Snow를 사용하여 소프트웨어 개발을 탐색하기 시작했습니다.

내가 읽은 모든 문서 및 튜토리얼은 사용 인터페이스 빌더 및 Xcode를 사용하여 사용자 인터페이스로 응용 프로그램을 작성합니다. 현재의 이해는 인터페이스 빌더로 생성 된 객체가 어떤 방식으로 .xib 파일에 정의되고 런타임에 생성된다는 것입니다.

번들에는 코드와 리소스가 포함되어 있습니다. .xib 파일은 실제로 UI 리소스를 포함하는 번들 이며이 번들이 런타임 및 개체 인스턴스에서로드되었으며 (올바른 동사입니까?)?

Abive가 진실이라면 인터페이스 빌더가 생성 한 코드와 이러한 객체가 생성되는 코드의 지점을 볼 수있는 방법이 있습니다. '내 학습 의이 단계에서 나를 도와 주었다.

C# / winforms와 Objective-C / Mac OS / Cocoa 사이의 명백한 패러다임 시프트를 파악하기 위해 읽어야 할 것이 있습니까?

도움이 되었습니까?

해결책

.xib 파일은 실제로 UI 리소스를 포함하는 번들 이며이 번들이 런타임 및 개체 인스턴스에서로드되었으며 (올바른 동사입니까?)?

아니. 번들 중 하나이다 여러 특정 디렉토리 구조, 및 XIB 파일은 디렉토리가 아닌 일반 파일입니다.

XIB 파일에는 객체에 대한 설명이 포함되어 있습니다. 펜촉을 컴파일하면 (일반적으로 앱 빌드의 일부로), NIB 컴파일러는 XIB에서 읽히고 여기에 설명 된대로 객체를 생성하고 번들이 아닌 NIB에 보관합니다.

애플리케이션에 NIB를로드하면 NIB 로더는 객체를 객체를 사용하지 않고 모든 콘센트가 객체와 파일 소유자와의 IB에있는대로 연결되도록합니다.

구현 세부 사항에 대해 걱정하지 마십시오. 펜촉은 그냥 작동합니다. 당신이해야 할 일은 다음과 같습니다.

  1. XIB 파일을 만듭니다. 버전 컨트롤을 사용하는 경우 추적한다고 말하는 것입니다.
  2. .lproj 폴더에 있는지 확인하십시오 (로컬 라이저가 현지화 된 버전을 생성 할 수 있도록).
  3. Xcode가 나머지를 처리하게하십시오.

다른 팁

깨달아야 할 핵심은 정상적인 의미에서 코드가 없다는 것입니다. 적어도 NIB/XIB UI 리소스는 단순히 Inteface Builder에 의해 생성되는 Objective-C 코드의 대조가 아닙니다. 이것들은 펜촉에서 일종의 "냉동"이고 앱에 의해 필요할 때 "냉동"이라는 개체입니다 (또는 깨어 난 니브가 제안한대로 깨어났습니다). 이들은 Objective-C 소스 코드를 생성하기위한 프레임 워크가 아니라 XML/Plist/etc 양식으로 보관됩니다.

XML 또는 기타 데이터로 직렬화 된 객체를 고려하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top