1
我跑在操場下面的(我在Xcode 7.3.1以及Xcode的8.1測試,並看到相同的行爲):是什麼導致來自UIPasteboard的項目轉換爲NSConcreteMutableData?
import UIKit
let key: String = "some_key"
let value: String = "some_value"
UIPasteboard.general.items = [[key: value]]
let item = UIPasteboard.general.items.first
if let item = UIPasteboard.general.items.first {
switch item[key] {
case let x as String:
print("This is expected")
case let x as Any:
type(of: x)
print("This is unexpected")
default:
print("This is unexpected")
}
} else {
print("This is unexpected")
}
而且我注意到String
,我投入剪貼板實際上被橋接爲NSConcreteMutableData
。
我的問題有以下幾點:
這是造成內部UIPasteboard實現(即明確從
NSString
轉換爲NSConcreteMutableData
),或者是這個標準的ObjC - 斯威夫特橋接行爲?我該如何解決這個問題才能在UIPasteboard中存儲自定義鍵/值對?
以下是這看起來像一個操場,以方便參考:
請注意,如果你導入MobileCoreServices',你可以使用'kUTTypeText作爲String'作爲你的密鑰而不是硬編碼''public.text'',如果你想指定UTI。 –