UIPasteboard没有赋予价值

时间:2019-05-24 07:35:43

标签: ios swift uipasteboard

一个对象,可帮助用户在应用程序中从一个地方共享数据到另一个地方,以及从您的应用程序共享到其他应用程序。

这是在UIPasteboard文档的开头写的语句。但是,当我尝试在两个不同的应用程序中使用它来访问其他应用程序设置的数据时,每次都会得到nil

 DispatchQueue.global(qos: .background).async {
    var i = 1
    while(i > 0) {
         let v = UIPasteboard.general.string
         sleep(1)
         print("Task : \(i)")
         print("Value: \(v)")
         i = i + 1
    }
  }

我正在上面的代码中获取数据,并在下面的代码中设置数据。

UIPasteboard.general.string = "Hello"

注意::我已经在此应用中进行了本地测试,正在设置数据

1 个答案:

答案 0 :(得分:0)

您是否正在运行iOS> = 10?关于应用之间传递价值的隐私更改。尝试阅读UIPasteBoard api文档:(https://developer.apple.com/documentation/uikit/uipasteboard)。

Tl:dr您需要将两个应用程序都放在同一个应用程序组(Communicating and persisting data between apps with App Groups)中

请注意:iOS应用已沙箱化。因此,iOS 10中的更改仅强制实施了该功能。

已编辑:由于您无法使用应用程序组(不同的开发人员和/或产品),因此必须通过其他渠道发送数据。尝试搜索urlSchemes或通过通用服务器(乏味的)存储/获取