transferCurrentComplicationUserInfo更适合复杂更新吗?

时间:2015-10-24 09:41:31

标签: watchkit apple-watch apple-watch-complication clockkit wcsession

transferCurrentComplicationUserInfotransferUserInfo之间的区别是什么?

我想将AppDelegate的数据发送到时钟套件复杂功能。

transferCurrentComplicationUserInfo似乎与transferCurrentUserInfo完全相同。我错过了什么吗?

2 个答案:

答案 0 :(得分:7)

这两种WCSession方法之间的区别涉及何时发送数据,以及是否唤醒了watchkit扩展。

transferCurrentComplicationUserInfo:专门用于传输即将在表盘上显示的复杂功能用户信息。

  • 复杂用户信息标记为“紧急”,位于队列的前面,
  • 手表在后台唤醒扩展程序以接收信息,
  • 转移立即发生。 (其他排队的信息也可能在那时转移。)

transferUserInfo:将信息排队,当系统确定是处理队列的好时机时传输这些信息:

  • 用户信息位于队列的后面,
  • 如果分机未唤醒,则存储传输的信息,
  • 转移不会立即发生,
  • 信息按发送顺序发送。

更多详细信息,请参阅WWDC 2015 Introducing Watch Connectivity video

iOS 10更新:

在iOS 10中,WCSession添加了remainingComplicationUserInfoTransfers属性,该属性可以影响iOS用于传输用户信息的方法:

  

您可以在当天拨打transferCurrentComplicationUserInfo:的剩余时间。如果此属性设置为0,则对transferCurrentComplicationUserInfo:的任何其他调用都会改为使用transferUserInfo:

     

如果复杂功能在活动表盘上,则每天进行50次转移。如果并发症未激活,则此属性默认为0。

答案 1 :(得分:1)

据我所知: 当从父app app委托调用时,TransferCurrentComplicationUserInfo具有与transferCurrentUserInfo相同的功能,但是,TransferCurrentComplicationUserInfo也调用CLKServer ......等来更新复杂性。我不得不说我发现两者都不可靠,我正在努力使用TransferCurrentComplicationUserInfo更新我的应用程序。似乎并不总是奏效。令人讨厌的是,它在构建之间变化而不改变代码,这在技术上是不可能的。哦,好吧......