CloudKit-如何共享一组实体并允许创建新数据

时间:2019-06-10 18:48:31

标签: core-data cloudkit

我目前正在建立一个用于杂货店购物的应用程序,我想在其中共享家庭中的一组数据(商店,产品,食谱和标签)。

假设我有一个名为class UserForm(forms.ModelForm): password = forms.CharField(widget=forms.PasswordInput()) confirm_password = forms.CharField(widget=forms.PasswordInput()) class Meta(): model = User fields = ('first_name','last_name','username','email','password') def clean(self): cleaned_data = super(UserForm, self).clean() password = cleaned_data.get("password") confirm_password = cleaned_data.get("confirm_password") if password != confirm_password: raise forms.ValidationError( "password and confirm_password does not match" ) class UserProfileInfoForm(forms.ModelForm): class Meta(): model = UserProfile fields = ('role',) class FeedbackForm(forms.ModelForm): class Meta(): model = UserProfile fields = ('feedback',) ShopProductRecipe的实体。如何在CloudKit中建立关系,允许每个受邀用户编辑商店,添加产品或阅读食谱?

我想在某种“家庭商店”中共享所有已知信息,但似乎没有关于如何使用CloudKit和CoreData进行此操作的文档,因此,我希望那些已经建立了一组实体共享的人在多个用户之间。

1 个答案:

答案 0 :(得分:0)

我建议在CloudKit中与您的FamilyShopProductRecipe实体一起设置一个Tag实体。 Family将是父实体,其他将具有指向CKReference记录的Family属性。

为了协调用户之间的共享记录,您可以查看CKShare,这是Apple提供的用于从私有数据库(documentation)共享记录的机制。

在您的情况下,您将在用户之间共享Family记录。只要其他记录设置为将Family记录作为其父记录,它们就会自动与Family记录的CKShare共享。

我喜欢在Medium上学习一个教程,该教程详细介绍了它的工作原理,该教程应该很好地适用于您要执行的操作:https://medium.com/@adammillers/cksharing-step-by-step-33800c8950d2

整个工作流程远远超出了您对堆栈溢出的回答。我希望这可以帮助您入门。