【发布时间】:2017-04-11 09:37:28
【问题描述】:
我尝试为 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 一起使用,但由于我是编程新手,所以我请你帮忙。谢谢!
【问题讨论】:
标签: ios swift share apple-watch