问题描述
模型
struct Contact: Identifiable {
let contact: CNContact
var id: String { contact.identifier }
var image: Data? { contact.imageData }
var givenname: String { contact.givenname }
}
static func fetch(_ completion: @escaping(Result<[Contact],Error>) -> Void) {
let containerID = CNContactStore().defaultContainerIdentifier
let predicate = CNContact.predicateForContactsInContainer(withIdentifier: containerID())
let keysToFetch = [
CNContactimageDataKey,CNContactimageDataAvailableKey,CNContactThumbnailImageDataKey,CNContactGivennameKey,CNContactFamilyNameKey,CNContactPhoneNumbersKey,CNContactEmailAddressesKey
] as [CNKeyDescriptor]
do {
let contacts = try CNContactStore().unifiedContacts(matching: predicate,keysToFetch: keysToFetch)
completion(.success(contacts.map({ .init(contact: $0)})))
} catch {
completion(.failure(error))
}
}
查看
struct ContactRow: View {
let contact: Contact
var body: some View {
vstack {
HStack {
Image(String(describing: contact.image))
.resizable()
.aspectRatio(contentMode: .fill)
.frame(width: 50,height: 50)
.background(AppColor())
.clipShape(Circle())
.shadow(color: Color.black.opacity(0.1),radius: 1,x: 0,y: 1)
.shadow(color: Color.black.opacity(0.2),radius: 10,y: 10)
Text(contact.givenname)
.font(.headline)
.foregroundColor(Color(#colorLiteral(red: 0.2549019754,green: 0.2745098174,blue: 0.3019607961,alpha: 1)))
}
}
}
}
我得到的错误是紫色,然后说
运行时:SwiftUI:在/ private / var / containers / Bundle / Application / ... etc
的资产目录中找不到名为“ Optional(38321字节)”的图像
很明显,我在Apple提供的Contacts
应用中有联系人图像。
有什么想法吗?
解决方法
您的联系人图片为InputDf= spark.read.format("jdbc")\
.option("url","jdbc:sqlserver://LAPTOP-xxxxx:1433;database=Demoxxxxx")\
.option("dbtable","dbo.DemoTb")\
.option("user","xxxxxx")\
.option("password","xxxxxxxxx")\
.option("driver","com.microsoft.sqlserver.jdbc.SQLServerDriver")\
.load()
,因此您应该以不同的方式创建Data
,例如
Image