ios - 在 iOs 10 和 WatchOS 3 之间共享数据(共享容器)

标签 ios swift share apple-watch

我尝试为 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/

相关文章:

ios10 swift3.0 Alamofire上传图片出现错误

iphone - UISegmentedControl 空索引

swift - 在 SwiftUI 中使用状态变量作为 func 的输入

ios - 如何使用 NSUserDefaults 与包含应用程序共享数据? - 今天扩展小部件

swift - 在 swift 中替换@protocol(<协议(protocol)名称>)

swift - 无法从 SLComposeViewController 显示 UIAlert

javascript - 如何在我的网站上添加 Facebook 分享按钮?

ios - 通过最新的 Dropbox 框架构建支持armv6、armv7 和armv7s

iphone - iOS - 在导航更改时停止视频

ios - UIActivityViewController 包括而不是排除事件类型