首先请理解我使用翻译器。
我正在使用 UIActivityViewController 创建一个共享图像和文本的功能。
当我运行共享功能时,我从控制台收到如下消息。
有谁知道为什么吗?
这是控制台消息:
获取断言时出错:
(501) type:0 的 personaAttributesForPersonaType 失败,错误为 Error Domain=NSCocoaErrorDomain Code=4099 “与名为 com.apple.mobile.usermanagerd.xpc 的服务的连接已失效: 查找失败,错误 159 - 沙箱限制。” UserInfo={NSDebugDescription=与名为的服务的连接 com. apple.mobile.usermanagerd.xpc 已失效:查找失败并出现错误 159 - 沙箱限制。}
收到标识符响应端口:<(null)>,出现错误:Error Domain=RBSServiceErrorDomain Code=1“客户端无权”UserInfo={RBSEntitlement=com.apple.runningboard.process-state, NSLocalizedFailureReason=客户端无权,RBSPermanent=false}
elapsedCPUTimeForFrontBoard 无法生成任务端口
收到标识符响应端口:<(null)>出现错误:Error Domain=RBSServiceErrorDomain Code=1“客户端无权”UserInfo={RBSEntitlement=com.苹果。 runningboard.进程状态, NSLocalizedFailureReason=客户端无权,RBSPermanent=false}
elapsedCPUTimeForFrontBoard 无法生成任务端口
我认为图片中的信息不应该出现。 这是我的代码。
guard let image = postImageView.image else { return }
let items = [viewModel.post.caption, image] as [Any]
let ac = UIActivityViewController(activityItems: items, applicationActivities: nil)
ac.popoverPresentationController?.sourceView = self.view
ac.excludedActivityTypes = [.assignToContact, .copyToPasteboard]
present(ac, animated: true)
您用于呈现 UIActivityViewController 的代码看起来是正确的。但是,如果存在问题,可能与您尝试共享的内容或调用此代码的上下文有关。
您正在使用guard let image = postImageView.image else { return } 解开 postImageView.image 。确保 postImageView.image 不为零。如果为零,UIActivityViewController 在尝试共享它时可能会遇到问题。
也可能是您不在设备上运行的问题
通过将代码移至 viewDidAppear,您可以确保视图控制器在呈现 UIActivityViewController 之前位于视图层次结构中。这应该可以解决您遇到的警告消息。
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
guard let image = postImageView.image else { return }
let items = [viewModel.post.caption, image] as [Any]
let ac = UIActivityViewController(activityItems: items, applicationActivities: nil)
ac.excludedActivityTypes = [.assignToContact, .copyToPasteboard]
// Present the UIActivityViewController
present(ac, animated: true)
}