【问题标题】:birthdayContactIdentifier BAD_ACCESS生日联系人标识符 BAD_ACCESS
【发布时间】:2016-07-05 08:40:41
【问题描述】:

当我从 EKEvent 访问属性birthdayContactIdentifier 时,我总是立即收到 BAD_ACCESS 错误(甚至无法进行 nil 检查)

这是我用来获取的代码

import UIKit  
import EventKit  
class ViewController: UIViewController {  

let eventStore : EKEventStore = EKEventStore()  
override func viewDidLoad() {  
    super.viewDidLoad()  

    eventStore.requestAccessToEntityType(.Event) { (granted, error) in  
        if granted == true {  
            let startDate = NSDate()  
            let endDate = startDate.dateByAddingTimeInterval(7.0*86400.0)  

            let events = self.eventStore.eventsMatchingPredicate(self.eventStore.predicateForEventsWithStartDate(startDate, endDate: endDate, calendars: nil))  

            for event in events {  
                if event.calendar.type == .Birthday {  
                    NSLog("\(event.title)")  
                    NSLog("\(event.birthdayContactIdentifier)") // BAD_ACCESS  
                }  
            }  
        }  
     }   
  }  
} 

【问题讨论】:

    标签: ios swift contacts ekevent


    【解决方案1】:

    我发现错误号 22475180 here。试试birthdayPersonID。从 iOS 9 开始,它目前已被弃用,但它的工作方式可能有所不同

    【讨论】:

    • 我之前也发现了一个,不幸的是,苹果没有给出任何解决方案。我会尝试birthdayPersonID,尽管它可能与联系人框架不兼容。但我会尝试并报告。
    • 刚刚尝试使用birthdayPersonID,没有给出任何错误,但标识符不同,因此无法获取正确的联系人。
    • 如果birthdayContactIdentifier 出错,你如何验证它的不同? (想知道那里有没有线索)
    • 我之前已经打印过 Contact 框架联系人标识符,它们的格式不同。 (联系人 = XXX-XXX-XXX-XXX)(地址簿 = Int)
    • 您是如何访问它们的?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-30
    • 2021-12-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-14
    相关资源
    最近更新 更多