zoukankan      html  css  js  c++  java
  • swift开发笔记23 BirthDays

    @escaping

     

    简单的介绍就是如果这个闭包是在这个函数结束前内被调用,就是非逃逸的即noescape。如果这个闭包是在函数执行完后才被调用,调用的地方超过了这函数的范围,所以叫逃逸闭包。

     

    ···未解决问题

    NSPredicate.init(format: "birthday is nil", <#T##args: CVarArg...##CVarArg#>)

     

    closure 闭包

     

    try contactStore.enumerateContacts(with: CNContactFetchRequest.init(keysToFetch: keys as! [CNKeyDescriptor]), usingBlock: { (contact, pointer) in

                            if contact.birthday != nil && contact.birthday?.month == self.currentlySelectedMonthIndex {

                                contacts.append(contact)

                            }

                        })

     

    if let homeEmail = HomeEmailTF.text {

                let homeEmail = CNLabeledValue.init(label: CNLabelHome, value: homeEmail as NSString)

                newContact.emailAddresses = [homeEmail]

            }

            let birthdayComponents = Calendar.current.dateComponents([Calendar.Component.year,Calendar.Component.month,Calendar.Component.day], from: datePick.date)

            newContact.birthday = birthdayComponents

     

    let saveRe = CNSaveRequest()

                saveRe.add(newContact, toContainerWithIdentifier: nil)

                try AppDelegate.appdelegate.contactStore.execute(saveRe)

     

     

    try contactStore.enumerateContacts(with: CNContactFetchRequest.init(keysToFetch: keys as! [CNKeyDescriptor]), usingBlock: { (contact, pointer) in })

     

    let predicate = CNContact.predicateForContacts(matchingName: self.tfield.text!)

                    let keys = [CNContactFormatter.descriptorForRequiredKeys(for: CNContactFormatterStyle.fullName),CNContactBirthdayKey,CNContactEmailAddressesKey] as [Any]

                    var contacts = [CNContact]()

                    var message: String!

                    

                    do {

                        contacts = try AppDelegate.appdelegate.contactStore.unifiedContacts(matching: predicate, keysToFetch: keys as! [CNKeyDescriptor])

                        if contacts.count == 0 {

                            message = "No contacts were found matching the given name."

                        }

                    } catch {

                        message = "Unable to fetch contacts."

                    }

  • 相关阅读:
    ExtAspNet下通过文档路径实现文档的下载
    ExtjS学习--------Ext.define定义类
    【C语言天天练(二三)】errno变量
    Linux 内核kobject 层次, kset, 和子系统
    Linux 内核释放函数和 kobject 类型
    Linux 内核引用计数的操作
    Linux 内核 kobject 初始化
    Linux 内核 嵌入的 kobjects
    Kobjects, Ksets 和 Subsystems
    Kobjects, Ksets 和 Subsystems
  • 原文地址:https://www.cnblogs.com/dengchaojie/p/8143625.html
Copyright © 2011-2022 走看看