2016-10-19 3 views
2

나는 Healthkit의 Heartrate 데이터에 액세스하고 여기의 문서를 따라 작업하고 있습니다 : https://developer.apple.com/reference/healthkit/hksamplequery. 비 기능 형 달력의 값을 호출 할 수있는 디버거)가 NSCalendar.currentCalendar을 (잡는다 그러나 그들은NSCalendar.current와 NSCalendar.currentCalendar()의 차이점

let calendar = NSCalendar.currentCalendar() 
let now = NSDate() 
let components = calendar.components([.Year, .Month, .Day], fromDate: now) 

스 니펫 다음 코드를 사용하여 호출합니다. IDE에서 제안한대로 NSCalendar.current로 변경했지만 세 번째 줄에는 인스턴스 이니셜 라이저 내에서 'calendar'인스턴스 멤버를 사용할 수 없다는 문제가 있습니다.

그럼 내 질문은 NSCalendar.current와 NSCalendar.currentCalendar()의 차이점은 무엇입니까? 그리고 내가 뭘 잘못하고있는거야?

도움을 주셔서 감사합니다.

+1

Swift 3으로 변환해야합니다. Swift 3 코드를 Swift 3 컴파일러에 공급하고 있습니다. 그게 효과가 없을거야. 그들은 다른 언어입니다. 달력, 날짜 및 모든 새 속성 및 메서드를 사용하십시오. – matt

답변

2

차이점은 스위프트 3을 사용하고 있지만 스위프트 2.x에 대한 지침을 살펴 보는 것입니다. API가 변경되었습니다. 이것은 스위프트 3 등가물입니다.

let calendar = Calendar.current 
let now = Date() 
let components = calendar.dateComponents([.year, .month, .day], from: now) 
+1

스위프트 3 NSCalendar 대신 Calendar를 사용해야합니다 –

+0

좋은 지적입니다. 그 중 하나를 놓쳤습니다. – Dima

+0

정말 고마워요. 그러나 세 번째 줄에는 여전히 문제가있는 것처럼 보입니다. 속성 초기화 프로그램 내에서 'calendar'인스턴스 멤버를 사용할 수 없습니다. 'self'를 사용할 수있게되기 전에 속성 이니셜 라이저가 실행됩니다. –