2016-07-28 1 views
0

나는 NSDateFormatter()로 변환을 시도하고 유닉스 타임 스탬프를 가지고,하지만 난 내 NSDate 변수를 전달하려고 할 때, 나는 오류 얻을 : '나는하셨습니까 때문에 혼란 스러워요 Cannot assign value of type 'String' to type 'NSDate?'있는 NSDate 포맷터 버그

var releaseDate: NSDate? 

override func viewDidAppear(animated: Bool) { 
    super.viewDidAppear(animated) 

    let seconds = Double(self.userA.releaseDate) 

    let timestampDate = NSDate(timeIntervalSince1970: seconds) 

    let stringTimeStamp = timestampDate.description 

    print(stringTimeStamp) // 2016-07-29 04:49:54 +0000 

    let releaseDateFormatter = NSDateFormatter() 
    releaseDateFormatter.dateFormat = "hh:mm:ss a" 
    releaseDate = releaseDateFormatter.stringFromDate(timestampDate) 
} 

을 나는 명시 적으로 timestampDateNSDate으로 선언합니까?

+0

stringFromDate는 실제로 날짜를 문자열로 변환합니다. String 객체에서 Date 객체를 반환하는 dateFromString이 필요할 수 있습니다. – Shad

답변

0

문제는 timestampDate이 아닙니다. 문제는 releaseDateNSDate?이고 stringFromDate의 결과를 String에 넣으려고한다는 것입니다.

타임 스탬프를 사용자가 읽을 수있는 문자열로 변환하려면 releaseDateString으로 선언하고 싶을 것입니다.

0

당신이 let stringTimeStamp = timestampDate.description을하고있는 설명문자열 객체를 반환합니다. 그래서 기본적으로 stringTimeStamp은 객체의 String 유형입니다. 결국 마침내 releaseDateFormatter.stringFromDate(timestampDate) 일 때 오류 Cannot assign value of type 'String' to type이 발생합니다.

stringFromDate 실제로 있는 NSDate문자열 변환하기 때문에

. 문자열이 매개 변수로 필요합니다. dateFromString이 필요하며 문자열NSDate 개체로 변환해야합니다.