Ser*_*ado 6 apple-watch clockkit watchos-2 apple-watch-complication
(在过去的几周里,其他人似乎遇到了这个问题,但是我找不到任何解决方案.)
我正在尝试做一个非常基本的事情:从我的iOS应用程序或我的Watch应用程序获取数据到我的复杂控制器.
事实证明,这样做的能力比我想象的要差.watchOS 2 Transition Guide表示我应该使用以下代码"[从[@fetch]扩展委托中获取所需的数据"):
ExtensionDelegate* myDelegate = [[WKExtension sharedExtension] delegate];
NSDictionary* data = [myDelegate.myComplicationData objectForKey:ComplicationCurrentEntry];
Run Code Online (Sandbox Code Playgroud)
大.除此之外,我还没有弄清楚如何让这个在扩展方面工作.虽然更重要的是,我似乎甚至无法从复杂的控制器启动中获得扩展代理代码.当我运行复杂功能时,我收到此消息:"扩展收到请求以唤醒并发症支持." 但是,任何扩展委托方法中的代码都不会运行.我还在每个方法中设置了断点,并且没有一个断点被击中.
它也看起来像"transferCurrentComplicationUserInfo:"也被建议用于复杂的更新,虽然它不清楚它是如何使用的.我已经收集了它,它用于唤醒手表扩展,以便ExtensionDelegate可以在下次复杂控制器运行时存储新数据,但由于之前的问题,我无法确认.
我有一个可能的解决方法(从并发症控制器ping服务器并希望会话变量持续存在,这样我就可以发送相关数据),但是如果我不能解决这个问题,那么我的并发症工作就会受到冲击.这里的任何帮助都是巨大的.
顺便说一句,这是我对"getCurrentTimelineEntryForComplication"的代码,如果这有用的话.
- (void)getCurrentTimelineEntryForComplication:(CLKComplication *)complication withHandler:(void(^)(CLKComplicationTimelineEntry * __nullable))handler {
NSDate* entryDate = [NSDate date];
ExtensionDelegate* myDelegate = [[WKExtension sharedExtension] delegate];
NSString* data = [myDelegate.complicationData objectForKey:@"meow"];
NSLog(@"complication data: %@", data);
CLKComplicationTimelineEntry* entry = [self getTimelineEntry:@"2015-08-25 00:19:42" entryDate:entryDate complication:complication];
handler(entry);
}
Run Code Online (Sandbox Code Playgroud)
自从Xcode 7 Beta 4以来,我一直在使用WatchOS2中的复杂功能.我现在使用最新的Xcode Beta 6.我遇到了许多问题,就像在Watch上运行的两个Beta版本一样,在iPhone上运行然后安装到Watch,并在模拟器上运行经常会出现假阴性,因为看起来有些错误的API和OS版本.我能够通过以下方式获得有关并发症的数据.
如果您遇到问题,可以尝试以下调试方法.如上所述,API和操作系统似乎非常错误.下面的步骤做工作(有时).
我希望有所帮助!
贾斯汀
归档时间: |
|
查看次数: |
2795 次 |
最近记录: |