我是swift的新手,我发现的方法因我的问题而被弃用.我正在构建一个目录应用程序,我从API中提取联系人数据,而不是从手机的地址簿中提取.
在iOS中,如果您转到地址簿,则可以选择联系人并选择"共享联系人",这将显示共享表.我想在我的应用程序中使用这个功能.
我想我已经找到了Share Sheets,这是我的代码:
@IBAction func actShare(sender: AnyObject) {
let activityViewController = UIActivityViewController(activityItems: ["text" as NSString], applicationActivities: nil)
presentViewController(activityViewController, animated: true, completion: {})
}
Run Code Online (Sandbox Code Playgroud)
我想改成"text" as NSString
vCard,因为这是iOS从地址簿中分享的对象,对吧?假设我是对的,我想从我自己的应用程序的联系对象创建一个vCard,以便将其分享给适当的应用程序(电子邮件,短信等).
我怎样才能在Swift中实现这一目标?如果我错了,请纠正我并告诉我我需要做什么.谢谢.
编辑:好的,这是我的变化.
@IBAction func actShare(sender: AnyObject) {
do {
var contactData = NSData()
try contactData = CNContactVCardSerialization.dataWithContacts([createContact()])
let activityViewController = UIActivityViewController(activityItems: [contactData as NSData], applicationActivities: nil)
presentViewController(activityViewController, animated: true, completion: {})
} catch {
print("CNContactVCardSerialization cannot save address")
}
Run Code Online (Sandbox Code Playgroud)
和
func createContact() -> CNMutableContact {
let contactCard = CNMutableContact() …
Run Code Online (Sandbox Code Playgroud)