2017-04-11 185 views
0

我嘗試爲Apple Watch和iPhone編寫一個練習App。 但是,我無法將我的多維數組發送到我的iPhone。 我嘗試了許多建議,如WCsessionNSUserDefaults或使用shared container的CoreData。在iOs 10和WatchOS 3(共享容器)之間共享數據

有一些解決方案已經在這裏建議在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」的數組:

我從觀察得到我的加速度數據,並將其存儲到數組。 該數組被聲明爲:

var exerciseArray = [Any]() 

但將這個數組的字典,並與userDefaults沒有工作發送。我還被建議將我的exerciseArray投入到數據中並用sendMessage發送。不幸的是,在YouTube,stackoverflow或其他任何地方發現的所有教程都不適用於iOS 10和watchOS 3.

因此,如果有人可以建議在iOS應用程序和iOS應用程序之間共享數據(不僅是小數據/字典)它的擴展實際上也會幫助很多其他人(就像我已經在這裏看到的那樣)。

我更喜歡在Core Data中使用共享容器,但由於我在編程方面全新,所以請您幫忙。謝謝!

回答

0

由於WatchOS2不再共享核心數據,但您可以使用WatchConnectivity框架在手機和手錶之間傳遞所需的信息。