[英]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正確啟用了應用程序組權限
您需要實現共享容器,以便在主應用程序和擴展之間進行通信。
查看給定的手表套件教程鏈接:-
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.