我正在开发一个使用CloudKit共享功能的应用程序。共享功能一直很好用,但是最近当用户接受共享请求时,我不再从CKShare.Participant
取回用户名。
详细信息
我正在使用内置的UICloudSharingController
来设置共享,它可以正常工作并正确设置共享。
受邀用户接受共享后,所有者将收到区域更改的通知,然后获取CKShare
。
提取的CKShare
对象具有一组共享参与者(CKShare.Participant
),该共享参与者具有nameComponents
属性。我已经使用它来获取参与者的名字和姓氏以显示在UI中。直到最近,一切都很好。
但是,现在,我仅在nameComponents
中获得共享所有者的值。接受的参与者具有nil
和nameComponents.givenName
的{{1}}值。
一段时间以来,我在代码的这一部分没有做任何更改,所以不要认为是我造成的。我已经在iOS 11、11.4、12、12.1上尝试过此方法,但都遇到了问题。这使我相信Apple的服务器端可能会发生变化。
注意
我没有请求nameComponents.familyName
权限。我不必为了获得用户接受的名称而这样做。我意识到我可以请求,然后使用.userDiscoverability
来获取名称。但是我不想,因为我不想要对话框,这会使用户感到困惑。
有人见过这种变化吗?还是更好,但是,有没有人建议寻找原因或解决原因?
谢谢。