我想在我的应用程序中使用多个com.apple.developer.icloud-container-identifiers。一个用于数据的正常同步,另一个用于共享跨应用程序解锁(因此,请购买一次并解锁多个应用程序)。开发人员门户中的设置已完成,我将两个相关的容器都添加到了第一个应用程序中,一个用于正常数据同步,另一个应由多个应用程序用来共享购买信息。但是我找不到识别使用哪个容器的方法。如何选择正确的代码?
到目前为止,我尝试在调试和调查对象时在代码中找到有用的信息。但是到目前为止没有运气。此外,文档和Google暂时没有帮助。
这是我当前的云同步代码(Xamarin / C#):
public class CloudSyncService : ICloudSyncService
{
public bool SupportCloudSync => true;
public event CloudDataChanged DataChanged;
public CloudSyncService()
{
NSNotificationCenter.DefaultCenter.AddObserver(NSUbiquitousKeyValueStore.DidChangeExternallyNotification, notification =>
{
System.Diagnostics.Debug.WriteLine("Cloud notification received.");
NSDictionary userInfo = notification.UserInfo;
var reasonNumber = (NSNumber)userInfo.ObjectForKey(NSUbiquitousKeyValueStore.ChangeReasonKey);
nint reason = reasonNumber.NIntValue;
var changedKeys = (NSArray)userInfo.ObjectForKey(NSUbiquitousKeyValueStore.ChangedKeysKey);
for (uint i = 0; i < changedKeys.Count; i++)
{
var key = changedKeys.GetItem<NSString>(i);
DataChanged?.Invoke(this, key);
}
});
}
public void StoreString(string key, string value)
{
var store = NSUbiquitousKeyValueStore.DefaultStore;
store.SetString(key, value);
store.Synchronize();
}
public string ReceiveString(string key)
{
var store = NSUbiquitousKeyValueStore.DefaultStore;
return store.GetString(key);
}
public void Delete(string key)
{
var store = NSUbiquitousKeyValueStore.DefaultStore;
store.Remove(key);
store.Synchronize();
}
}
如果任何人都有一些示例或在哪里寻找特定容器标识符的想法,那将非常棒。这是在Swift / C#/ Objective-C中还是什么都没关系。我想任何提示都是有帮助的。