代码示例
完整代码示例
import SwiftUI
struct ContentView: View {
@State private var loadedText: String = ""
@State private var loadedImage: UIImage? = nil
@State private var loadedURL: URL? = nil
var body: some View {
VStack {
// 文本展示
if !loadedText.isEmpty {
Text("Loaded Text: \(loadedText)")
.padding()
} else {
Text("No text loaded")
.padding()
}
// 图片展示
if let image = loadedImage {
Image(uiImage: image)
.resizable()
.frame(width: 200, height: 200)
.padding()
} else {
Text("No image loaded")
.padding()
}
// URL 展示
if let url = loadedURL {
Text("Loaded URL: \(url.absoluteString)")
.padding()
} else {
Text("No URL loaded")
.padding()
}
Button("Load Data") {
loadData()
}
.padding()
}
}
// 加载数据的函数
func loadData() {
// 文本数据处理
let textProvider = NSItemProvider(object: "This is a sample text" as NSString)
if textProvider.canLoadObject(ofClass: NSString.self) {
textProvider.loadObject(ofClass: NSString.self) { (object, error) in
if let text = object as? String {
DispatchQueue.main.async {
self.loadedText = text
}
}
}
}
// 图片数据处理
if let sampleImage = UIImage(systemName: "photo") {
let imageProvider = NSItemProvider(object: sampleImage)
if imageProvider.canLoadObject(ofClass: UIImage.self) {
imageProvider.loadObject(ofClass: UIImage.self) { (object, error) in
if let image = object as? UIImage {
DispatchQueue.main.async {
self.loadedImage = image
}
}
}
}
}
// URL 数据处理
if let sampleURL = URL(string: "https://www.example.com") {
let urlProvider = NSItemProvider(object: sampleURL as NSURL)
if urlProvider.canLoadObject(ofClass: NSURL.self) {
urlProvider.loadObject(ofClass: NSURL.self) { (object, error) in
if let url = object as? URL {
DispatchQueue.main.async {
self.loadedURL = url
}
}
}
}
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}代码解析
运行效果
Last updated