IOSからデータを取得できましたが、監視しています。 Watchkit拡張機能でデータを保存すると、IOSはデータを取得できませんでした。それはとても奇妙です。グループを追加してプロフィールを作成しました。次 は私のスニペットです:これは何が起こる原因ですか? NSUserDefaultsはwatchkitのIOSとWatchの間でデータを共有できませんでした。
class InterfaceController: WKInterfaceController {
@IBOutlet var outputLabel: WKInterfaceLabel!
override func awake(withContext context: Any?) {
super.awake(withContext: context)
// Configure interface objects here.
}
override func willActivate() {
// This method is called when watch view controller is about to be visible to user
super.willActivate()
}
override func didDeactivate() {
// This method is called when watch view controller is no longer visible
super.didDeactivate()
}
// load the data from the IOS
@IBAction func loadData() {
let userDefaults = UserDefaults.standard
userDefaults.synchronize()
let outputData = userDefaults.string(forKey: "share")
self.outputLabel.setText(outputData)
}
}
class ViewController: UIViewController {
@IBOutlet weak var inputData: UITextField!
@IBOutlet weak var inputLabel: UILabel!
@IBOutlet weak var outputLabel: UILabel!
// input string into the fieldText and save them in Group by NSUserDefaults
@IBAction func saveData(_ sender: AnyObject) {
let inputData1 = self.inputData.text
self.inputLabel.text = inputData1
let userDefaults = UserDefaults.standard
userDefaults.setValue(inputData1, forKey: "share")
userDefaults.synchronize()
self.outputLabel.text = userDefaults.string(forKey: "share")
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
はあなたが確認することができますエンタイトルメントファイルのappグループ –
確認方法私はグループを作成し、私のプロジェクトでgroupName.entitiementsを見つけることができました。それは仕事ですか? – Maxwell
はい。それは私が話していることです。目的の共有値にアクセスするには、要求時にそのアプリケーショングループ名を指定する必要があります。このように:[[NSUserDefaults alloc] initWithSuiteName:appGroup] –