从容器应用程序*iOS 8.3*开始,如何检查"允许完全访问"

das*_*ist 32 objective-c ios ios8 ios-keyboard-extension ios8-extension

在iOS 8.3之前,检查是否已授予键盘扩展"允许完全访问权限"的方法是通过容器应用程序中的以下代码:

- (BOOL)isOpenAccessGranted{
   return [UIPasteboard generalPasteboard];
}
Run Code Online (Sandbox Code Playgroud)

但是,正如对这个流行的SO答案线程的评论所指出的那样,自iOS 8.3以来,即使未授予完全访问权限,应用程序也可以从共享组容器中读取,因此上述代码始终返回true.但是,仅在启用"允许完全访问"时才授予写入权限.

我已经尝试列出了所有基于苹果公司pasteboards的文档UIPasteboard,但它并没有界定哪些是可访问的.对此有任何见解非常感谢.

小智 1

在 iOS 8.4 上,如果不允许完全访问,UIPasteboard.generalPasteboard()则会出现这种情况。nil在再次测试之前,尝试删除键盘和容器应用程序+clean and build应用程序。应该可以正常工作。