我尝试为Apple Watch和iPhone编写一个练习App。 但是,我无法将多维数组发送到我的iPhone。 我使用WCsession尝试了许多建议,例如NSUserDefaults,shared container或CoreData。
在stackoverflow上已经提出了一些解决方案,但通常它们只发送一个简短的字符串或字典。
我的应用
我有两个带有变量的类:
$uibModalInstance.rendered.then(function () {
var video = document.getElementById('MyVideo');
video.load();
video.play();
});
和
class WorkoutClass: NSObject {
var date: String
var exercise: String
var duration: Double
var repetitions: Double?
var meanRepDuration: Double?
var idealAngle: Double?
var meanAngle: Double?
var repArray: Array<Any>?
init(date: String, exercise: String, duration: Double, repetitions: Double?, meanRepDuration: Double?, idealAngle: Double?, meanAngle: Double?, repArray: Array<Any>?) {
self.date = date
self.exercise = exercise
self.duration = duration
self.repetitions = repetitions
self.meanRepDuration = meanRepDuration
self.idealAngle = idealAngle
self.meanAngle = meanAngle
self.repArray = repArray
}
}
注释:因为我以特殊方式获取数据,所以我必须这样做。对于每个练习,添加一个数组,其中包含每次重复的特定数据
这将与多个练习一起添加到名为“exerciseArray”的数组中:
我从Watch获取加速度数据并将其存储到数组中。 该数组声明为:
class RepetitionClass: NSObject {
var oneRepAngle: Double?
var oneRepStartTime: Double?
var oneRepEndTime: Double?
var oneRepInternalVariation: Double?
init(oneRepAngle: Double?, oneRepStartTime: Double?, oneRepEndTime: Double?, oneRepInternalVariation: Double?) {
self.oneRepAngle = oneRepAngle
self.oneRepStartTime = oneRepStartTime
self.oneRepEndTime = oneRepEndTime
self.oneRepInternalVariation = oneRepInternalVariation
}
}
但是将此数组放入字典并使用userDefaults发送它不起作用。我还建议将exerciseArray转换为数据并使用var exerciseArray = [Any]()
发送。不幸的是,在youtube,stackoverflow或其他任何地方找到的所有教程都不适用于iOS 10和watchOS 3。
因此,如果有人可以建议在iOS应用程序及其扩展程序之间共享数据(不仅是小数据/字典)的方法,这实际上也会帮助很多其他人(正如我在堆栈溢出中看到的那样)。
我更喜欢使用带有Core Data的共享容器,但由于我是编程新手,所以请求您的帮助。谢谢!
答案 0 :(得分:0)
由于WatchOS2您不再共享Core Data,但您可以使用WatchConnectivity框架在手机和手表之间传递所需的信息。