2017-09-06 13 views
3

Apple Watch에서 문제가 발생했습니다.Apple에서의 컴플라이언스 내 정보 표시 안 함

나는 합병증에 이미지와 일부 텍스트를 표시하려고합니다. 나는 Clock 인터페이스에서 복잡성을 선택할 수 있지만 앱 제목과 "-"문자로 가득 찬 두 줄을 보여주지는 않습니다. 나는 중간에 중단 점을 배치하면

func getLocalizableSampleTemplate(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTemplate?) -> Void) { 
    // This method will be called once per supported complication, and the results will be cached 
    handler(nil) 
    var template: CLKComplicationTemplateModularLargeColumns? 
    switch complication.family { 
    case .modularSmall: 
     template = nil 
    case .modularLarge: 
     let modularLargeTemplate = 
      CLKComplicationTemplateModularLargeColumns() 
     modularLargeTemplate.row1ImageProvider = 
      CLKImageProvider(onePieceImage: UIImage(named: "GreenUser")!) 
     modularLargeTemplate.row2ImageProvider = 
      CLKImageProvider(onePieceImage: UIImage(named: "GreenUser")!) 
     modularLargeTemplate.row3ImageProvider = 
      CLKImageProvider(onePieceImage: UIImage(named: "GreenUser")!) 

     modularLargeTemplate.row1Column1TextProvider = CLKSimpleTextProvider(text: "User: ") 
     modularLargeTemplate.row1Column2TextProvider = CLKSimpleTextProvider(text: "ok") 

     modularLargeTemplate.row2Column1TextProvider = CLKSimpleTextProvider(text: "Car: ") 
     modularLargeTemplate.row2Column2TextProvider = CLKSimpleTextProvider(text: "ok") 

     modularLargeTemplate.row3Column1TextProvider = CLKSimpleTextProvider(text: "Environment: ") 
     modularLargeTemplate.row3Column2TextProvider = CLKSimpleTextProvider(text: "ok") 

     template = modularLargeTemplate 
    case .utilitarianSmall: 
     template = nil 
    case .utilitarianLarge: 
     template = nil 
    case .circularSmall: 
     template = nil 
    default: 
     template = nil 
    } 
    handler(template) 

} 

:

합병증 대신 내 정보를 표시해야합니다,하지만 난 내 코드 여기

잘못이 무엇인지 표시되지 않습니다 코드입니다 코드에서 디버거가 트리거하여이 코드를 실행합니다. 그러나 내가 원하는 것처럼 아무것도 표시되지 않습니다.

무엇이 잘못되었거나 누락 되었습니까?

+0

왜 처음에는 'handler (nil)'을 호출합니까? 당신의 모든 함수는 실행되지 않고,'nil' 클로저를 곧바로 리턴합니다. –

+0

@ DávidPásztor 그 줄을 지우려고했지만 그 결과는 여전히 동일합니다 –

+0

함수 호출 여부와 호출시'template'이'nil'인지 여부를 실제로 확인 했습니까? –

답변

0

이것은 템플릿 일 뿐이므로 getCurrentTimelineEntry을 처리해야합니다. 가장 간단한 방법은 템플릿과 동일한 항목을 반환하는 것입니다 (아래 참조). 그리고 다른 의견에서 언급 한 것처럼 코드에서 handler(nil)도 삭제해야합니다.

func getCurrentTimelineEntry(for complication: CLKComplication, withHandler handler: @escaping (CLKComplicationTimelineEntry?) -> Void) { 
     getLocalizableSampleTemplate(for: complication) {template in 
      guard let template = template else { 
       handler(nil) 
       return 
      } 
      handler(CLKComplicationTimelineEntry(date: Date(), complicationTemplate: template)) 
     } 
    }