Итак, я собираюсь отправлять данные туда и обратно между двумя приложениями, и я подумал, что поскольку в разных моделях много данных, я могу использовать UIPasteboard
.Однако я не могу заставить его работать.Вот код и вопрос.
struct TestModel {
var value1: Int = 0
var value2: String = "hi"
}
class ViewController: UIViewController {
@IBOutlet weak var redView: UIView!
override func viewDidLoad() {
super.viewDidLoad()
let model = TestModel(value1: 1, value2: "hello")
let testModel = Mirror.init(reflecting: model)
guard let paste = UIPasteboard.init(name: UIPasteboard.Name(rawValue: "test1"), create: true) else {return}
let items = testModel.children.map({
return [$0.label ?? "noLabel": $0.value]
})
print(items)
paste.addItems(items)
print(paste.items[0]["value1"])
}
}
print(items)
дает мне следующее: [["value1": 1], ["value2": "hello"]]
Так что все работает до сих пор.
print(paste.items[0]["value1"])
однако дает мне: <OS_dispatch_data: data[0x2835d3cc0] = { leaf, size = 43, buf = 0x102f18000 }>
Ия понятия не имею, как развернуть это, я пытался развернуть его в Int
, String
, Data
, NSData
и все, но, кажется, ничего не работает .. так что происходит?