2016-06-29 2 views
0

WatchOS 앱용 간단한 합병 템플릿을 만들려고하고 있는데, ComplicationController 클래스의 메소드 getPlaceholderTemplateForComplication()이 언제 호출되는지 이해하려고 노력하고 있습니다.getPlaceholderTemplateForComplication() 메서드는 언제 호출됩니까?

애플의 문서, 앱이 처음으로 시작하면

는 ClockKit이 메소드를 호출

를 말합니다하지만 난 시뮬레이터를 실행하는 경우, 그것은 가장 자주 발생하지 않습니다.

"Show App on Apple Watch"스위치를 껐다가 다시 켜면 도움이되지 않습니다.

언제 getPlaceholderTemplateForComplication() 메서드를 호출해야합니까?

+0

a) 시계 모드를 사용자 정의하는 동안 자리 표시자가 나타나지 않는다고 언급하고 b) getPlaceholderTemplateForComplication 코드를 추가하십시오. –

+0

자리 표시 자 메서드가 호출 된 후 자리 표시 자 템플릿이 앱에 표시됩니다. 이는 정상적인 동작이므로 문제가 없습니다. 문제는 메서드가 항상 호출되는 것은 아니며 메서드와 메서드를 언제 실행해야 하는지를 알아야한다는 것입니다. – Julsteri

+0

시스템은 * once * 메서드를 호출 한 다음 결과를 캐시합니다. 시계 모드를 사용자 정의 할 때마다 메소드를 계속 호출하지 않습니다. 시스템에서 어떻게 또는 왜 하는지를 묻는 대신, 발생한 증상을 설명해야합니다. 맞춤 설정 여부에 따라 자리 표시자가 나타 납니까? ** ** 코드를 보여주십시오 **. 시스템이 메소드 호출 여부와 상관없이 코드에서 문제가 발생할 확률이 더 높습니다. 시스템이 호출시기를 알기에 최적화되어 있기 때문입니다. –

답변

0

시계 모드를 사용자 정의하고 표시 할 합병증을 선택하면 자리 표시 자 템플릿이 호출됩니다. 시스템은 getPlaceholderTemplateForComplication()을 한 번으로 호출 한 다음 결과를 캐시합니다. 합병증을 사용자 정의 할 때마다 메소드를 계속 호출하지 않습니다.

복잡성 선택 사항을 스크롤하면 거기에 표시된 정적 세부 정보에 자리 표시 자 템플릿에 대해 반환 된 세부 정보가 표시됩니다.

시계 모드에서 표시되는 복잡성이 활성화되면 자리 표시 자 템플릿이 호출되지 않습니다. 대신 타임 라인 항목이 complication dataSource 방법에서 오는 :

  • getCurrentTimelineEntryForComplication, 선택적으로 시간 여행이 지원되는 경우
  • getTimelineEntriesForComplication
  • 에서.

시계 응용 프로그램을 설치하거나 제거하는 것은 자리 표시 자 템플릿과 관련이 없습니다. watchOS 3

:

watchOS 3는 사용자가보고 시계 얼굴과 합병증을 사용자 정의 할 수있는 얼굴 갤러리를 지원합니다. 갤러리에 표시된 정적 합병증 데이터는 자리 표시 자 템플릿에서도 가져옵니다.

+0

저는 iPhone + Apple Watch 시뮬레이터에서 watchkit app scheme을 실행하고 있습니다. 또한 언급 한 모든 방법에 중단 점을 추가했습니다. 설명 된대로'getPlaceholderTemplateForComplication' 메소드의 중단 점에 도달하지 않습니다. 나는 시계 얼굴을 사용자 정의하고 합병증을 통해 스크롤하려고했습니다. 제 합병증이 나타납니다.watche의 캐시를 어떻게 든 재설정해야합니까? 시뮬레이터에서 콘텐츠 및 설정을 재설정하려고했습니다. – Julsteri

+0

시계 모드를 사용자 정의 할 때 시계가 수행중인 작업을 디버깅하지 않으므로 해당 중단 점에 도달하지 않습니다. 시스템에서 복잡한 컨트롤러의 인스턴스를 인스턴스화했지만 인터페이스에 연결하거나 대화식으로 디버깅 할 수는 없습니다. 그러나 디버깅은 실제로 문제가 아닙니다. 아마도 질문을 편집하고 합병증이 의미하는 바가 "비어 있음"이라고 설명해야합니다. 시계 모드를 맞춤 설정하는 동안 또는 시계 모드에서 활성 상태 일 때 –

+0

시뮬레이터가 과거의 중단 점을 실행할 수 있다는 것을 의미합니까? 내 경험에 의하면 때때로 브레이크 포인트에 완전히 도달하지만 항상 그런 것은 아닙니다. 또한 비어있는 의미는 맞춤 설정 모드에서 합병증으로 스크롤하면 병합 이름이 컨테이너 옆에 표시되지만 컨테이너는 비어 있음을 의미합니다. 시스템이 복잡성 템플릿을 캐시하지 않았 음을 의미합니다. – Julsteri

관련 문제