我尝试为 Apple Watch 和 iPhone 编写一个锻炼应用程序。 但是,我无法将多维数组发送到我的 iPhone。 我尝试了很多建议,例如 WCsession , NSUserDefaults或 CoreData 使用 shared container .
stackoverflow 上已经建议了一些解决方案,但它们通常只发送短字符串或字典。
我的应用程序:
我有两个带有变量的类:
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
}
}
和
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
}
}
注释:因为我以特殊方式获取数据,所以我必须这样做。对于每个练习,都会添加一个数组,其中包含每次重复的特定数据
这将与多个练习一起添加到名为“exerciseArray”的数组中:
我从 watch 获取加速度数据并将其存储到数组中。 该数组声明为:
var exerciseArray = [Any]()
但是将此数组放入字典中并使用 userDefaults 发送它不起作用。我还建议将锻炼数组转换为数据并使用 sendMessage
发送。不幸的是,在 youtube、stackoverflow 或其他任何地方找到的所有教程均不适用于 iOS 10 和 watchOS 3。
因此,如果有人可以建议一种在 iOS 应用程序及其扩展之间共享数据(不仅仅是小数据/字典)的方法,这实际上也会帮助很多其他人(正如我已经在 stackoverflow 上看到的那样)。
我更喜欢使用带有 Core Data 的共享容器,但由于我在编程方面完全陌生,所以我请求你的帮助。谢谢!
最佳答案
从WatchOS2开始,您不再共享Core Data,但您可以使用WatchConnectivity框架在手机和 watch 之间传递您需要的信息。
关于ios - 在 iOs 10 和 WatchOS 3 之间共享数据(共享容器),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43342157/