2017-04-11 3 views
0

Apple Watch 및 iPhone 용 운동 앱을 프로그래밍하려고합니다. 그러나 내 iPhone에 다차원 Array를 보낼 수 없습니다. shared container을 사용하여 WCsession, NSUserDefaults 또는 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 앱과 그 확장은 실제로 다른 많은 사람들에게도 도움이 될 것입니다 (이미 stackoverflow에서 본 것처럼).

핵심 데이터가 포함 된 공유 컨테이너를 사용하는 것이 더 좋지만 프로그래밍에 완전히 익숙하므로 도움을 요청합니다. 감사!

답변

0

WatchOS2 이후 더 이상 핵심 데이터를 공유하지 않지만 WatchConnectivity 프레임 워크를 사용하여 전화와 시계간에 필요한 정보를 전달할 수 있습니다.