我正在尝试使用watchOS 2在Apple Watch上渲染线/步图。与iOS 9不同,watchOS 2不支持Quartz。 它只支持Core Graphics。 我试图写一些代码来绘制一个线图,但是我得到一个错误“CGContextRestoreGState:invalid context 0x0。这是一个严重的错误。这个应用程序,或者它使用的一个库,正在使用一个无效的上下文,从而有助于整体系统稳定性和可靠性的降低,这是一个礼节性的问题:请解决这个问题,在即将到来的更新中,这将成为一个致命的错误。 以下是我使用的代码片段: import WatchKit import Foundation import UIKit class InterfaceController: WKInterfaceController{ override func awakeWithContext(context: AnyObject?) { super.awakeWithContext(context) let path = UIBezierPath() let startPoint = CGPointMake(0.0, 0.0) path.moveToPoint(startPoint) let nextPoint = CGPointMake(20.0, 20.0) path.addLineToPoint(nextPoint) path.lineWidth = 1.0 UIColor.whiteColor().setStroke() path.stroke() } override func willActivate() { super.willActivate() } override […]
我需要制作一个近乎实时logging心率数据的应用程序,并尽快将这些数据发送到服务器。 首先我采取了这种方法: 观看操作系统2.0testing版:访问心脏跳动率 实际上它工作正常。 HealthKit每五秒钟有新的心率数据。 但现在我有问题,我不能与服务器同步。 我的第一个方法是手表应用程序。 手表正在向服务器发送数据。 这是行不通的,因为只要手表上的屏幕变黑,就停止发送。 我的下一个方法是每五秒钟在iPhone上查询HealthKit以获取新数据。 这工作,只要应用程序在前台。 然后,我看到有一些背景function可以监视HealthKit本身,并从后台撤消应用程序,并且可以执行某些操作。(enableBackgroundDeliveryForType)这对于心率来说似乎不起作用(Apple文档中提到了像这样的步骤不工作,我猜心率是其中之一)。 我现在卡住了。 你知道如何去做? 我需要一些在iPhone上每5-10秒执行一次的后台任务。 这似乎是不可能的
我正在使用iOS 9 beta 4和watchOS 2 beta 4。 手表屏幕变黑时(locking),我似乎无法获取任何心率数据。 我将打电话给applicationWillResignActive ,然后心率数据就停止。 看起来,传感器在一段时间后也停用(不再是绿色),当屏幕locking时。 任何人看到这种行为? 如果其他人在手表上的屏幕locking时获取心率数据,则可以发布我的代码以启动WorkoutSession。
我所有的数据创build都在ExtensionDelegate.swift完成。 问题是ExtensionDelegate.swift不会在我的ComplicationController.swift函数getCurrentTimelineEntryForComplication之前被调用 。 有任何想法吗? 这里是我的代码和细节: 所以我的数组extEvnts在我的ComplicationController.swift是空的: func getCurrentTimelineEntryForComplication(complication: CLKComplication, withHandler handler: ((CLKComplicationTimelineEntry?) -> Void)) { let extEvnts = ExtensionDelegate.evnts } 因为我的ExtensionDelegate.swift还没有被调用,这是为数组创build的数据: class ExtensionDelegate: NSObject, WKExtensionDelegate, WCSessionDelegate { private let session = WCSession.defaultSession() var receivedData = Array<Dictionary<String, String>>() static var evnts = [Evnt]() func session(session: WCSession, didReceiveUserInfo userInfo: [String : AnyObject]) { if let tColorValue = […]
我发现许多问题和许多答案,但没有最后的例子: 任何人都可以在Objective C中给出最后一个例子,最好的做法是使用带有多个ViewController的IOS应用程序和Watch应用程序(WatchOS2)来使用WCSession。 我到目前为止注意到的是以下事实: 1.)在AppDelegate的父(IOS)应用程序中激活WCSession: – (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //Any other code you might have if ([WCSession isSupported]) { self.session = [WCSession defaultSession]; self.session.delegate = self; [self.session activateSession]; } } 2.)在WatchOS2端使用<WCSessionDelegate> 。 但其余的对我来说完全不清楚! 一些答案正在通过指定的字典中的键来说话,如: [session updateApplicationContext:@{@"viewController1": @"item1"} error:&error]; [session updateApplicationContext:@{@"viewController2": @"item2"} error:&error]; 其他人正在讨论检索默认会话 WCSession* session = [WCSession defaultSession]; [session updateApplicationContext:applicationDict error:nil]; 其他人在谈论不同的队列? “如果有必要,客户有责任派遣到另一个队列,然后发回主系统。” […]
我使用WatchKit 1.0创build了iOS / Apple Watch应用程序,该应用程序使用共享组容器和自定义框架来访问相同的Core Data存储。 现在,在watchOS 2.0的转换指南中,苹果说: 如果您的现有Watch应用程序和iOS应用程序使用共享组容器或iCloud交换数据,则必须更改在watchOS 2中交换数据的方式。由于WatchKit扩展现在在Apple Watch上运行,因此扩展必须与iOS交换数据应用程序无线。 您可以使用NSURLSession对象或使用Watch Connectivity框架来实现这一点,该框架支持iOS应用程序和WatchKit扩展之间的双向通信。 但是,这对Core Data是如何工作的? 我是否需要维护两个独立的商店,一个在手表上的Documents文件夹中,另一个在手机上,并使用Watch Connectivity框架来同步更改? 我看到,watchOS 2.0可以访问核心数据框架(它在可用技术列表中)…但我只是不知道这是如何帮助,当商店位于手机上。 任何帮助/指导表示赞赏!
随着手表OS 2.0的开发人员应该被允许访问心跳传感器….我很想玩一点,并为我的想法build立一个简单的原型,但我无法find任何地方的信息或文件此function。 任何人都可以指出我如何处理这个任务? 任何链接或信息将不胜感激