簡體   English   中英

無法將NSUserDefaults與Apple Watch同步

[英]Can't sync NSUserDefaults with apple Watch

我需要將2個雙打傳遞給Apple Watch,為此,我在擴展程序和主應用程序中設置了應用程序組,接下來:

主要應用程式:

groupDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.XXXXX"];
[groupDefaults setDouble:pitchDelta forKey:@"pitch_delta"];
[groupDefaults setDouble:rollDelta forKey:@"roll_delta"];
[groupDefaults synchronize];

延期:

groupDefaults = [[NSUserDefaults alloc] initWithSuiteName:@"group.XXXXX"];
double pitchDelta = [groupDefaults doubleForKey:@"pitch_delta"];
double rollDelta = [groupDefaults doubleForKey:@"roll_delta"];

但是這些值未傳遞。 我忘記了什么嗎?

在主應用程序代碼中

[groupDefaults setDouble:pitchDelta forKey:@"pitch_delta"];
[groupDefaults setDouble:rollDelta forKey:@"roll_delta"];
[groupDefaults synchronize];
        NSLog(@"%f %f", [groupDefaults doubleForKey:@"pitch_delta"], [groupDefaults doubleForKey:@"roll_delta"]);

在日志中返回-0.387812 -0.098052

如果使用模擬器,則可以查找這些數據是否已成功保留。

在我的情況下,路徑為:

/Users/benson/Library/Developer/CoreSimulator/Devices/C4557E97-F6E4-48A9-B1C7-04441B3A0214/data/Containers/Shared/AppGroup/991C1FE1-6839-441E-A2F4-66834A683153/Library/Preferences/group.XXXXX.plist

打開group.XXXXX.plist文件,查找這些值是否存在。

在模擬器中,同步NSUserDefaults當前並不總是起作用。 這是一個眾所周知的問題。 我花了很多時間在代碼中查找錯誤,最后發現我的代碼在實際的Apple Watch上運行良好。

但是,我不確定是否可以以如此高的頻率進行書寫。 您如何確保同步?

嘗試從設備和手表中完全刪除應用,然后重試。

使用Today extension測試時,我遇到了同樣的問題。

還要在開發人員門戶上檢查,盡管您可能在Xcode上看到了什么,但您的應用程序ID正確啟用了應用程序組權限

您需要實現共享容器,以便在主應用程序和擴展之間進行通信。

查看給定的手表套件教程鏈接:-

https://developer.apple.com/library/prerelease/ios/documentation/General/Conceptual/WatchKitProgrammingGuide/DesigningaWatchKitApp.html#//apple_ref/doc/uid/TP40014969-CH3-SW4

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM