2016-10-25 1 views
0

내 노트 클래스에서 시간을 추가하려고하지만 오류 메시지가 나타납니다. 클래스의 참고 항목에 시간을 포함하는 올바른 방법은클래스에 NSDateFormatter 포함 문제

http://imgur.com/hyRHj30

무엇입니까?

class noteTime{ 
var timeFormatter = NSDateFormatter() 
timeFormatter.dateFormat = "h:mm a" //ERROR: Expected Declaration 
timeFormatter.AMSymbol = "AM" 
timeFormatter.PMSymbol = "PM" 

var timeString = timeFormatter.stringFromDate(NSDate()) 
//ERROR: Instance member 'timeFormatter' cannot be used on type 'noteTime' 
} 
+1

func에 코드를 삽입하지 않습니까? – Larme

+0

@Larme 아니, 아닙니다. 별도의 클래스 파일에 있습니다. 함수를 내부에 넣으면 같은 코드가 작동합니다 ... –

+2

클래스의 최상위 레벨에서 해당 코드를 실행할 수 없습니다 – vadian

답변

1

는 타임 스탬프 값을 할당하는 클로저를 사용 얻으려면 : 여기

인라인 주석 오류 메시지입니다.
class NoteTime { // class names are supposed to start with a capital letter 

    let timeString : String = { 
    let formatter = NSDateFormatter() 
    formatter.dateFormat = "h:mm a" 
    formatter.AMSymbol = "AM" 
    formatter.PMSymbol = "PM" 
    return formatter.stringFromDate(NSDate()) 
    }() 
} 

지금 인스턴스의 타임 스탬프를 생성 할 때마다 일정으로 저장됩니다 ( let!) timeString에.

class NoteTime { 
    var timeFormatter : DateFormatter = { 
     let formatter = DateFormatter() 
     formatter.dateFormat = "h:mm a" 
     formatter.amSymbol = "AM" 
     formatter.pmSymbol = "PM" 

     return formatter 
    }() 

    var timeString : String { 
     get { 
      return timeFormatter.string(from: Date()) 
     } 
    } 
} 

이 날짜 형식화 한 시간을 설정합니다

+0

코드를 제공해 주셔서 감사합니다. 그것은 나를 위해 지금 일한다. !!! :) –

0

여기 (스위프트 3.0) 하나 개의 가능한 솔루션입니다. 그리고 나서 timeString 속성에 액세스 할 때마다 원하는대로 현재 시간이 표시됩니다.

+0

흠 .. 꽤 흥미 롭고 진보 된 .. 코드를 게시 해 주셔서 감사합니다 ... 스위프트 3을 사용하지 않아서 유용하지 않습니다. XCode 8과 Swift 3에 대한 많은 부정적인 리뷰를 보았습니다. Infact, Mac 앱 스토어에서 누군가 크리스마스 전에 앱을 출시하고 싶지 않다면 Xcode 8을 사용하지 말라면서 .. 어쨌든, 오프 토픽 .. –

+0

참고 - 게시 한 코드는 Swift 2로 쉽게 변환 될 수 있습니다. 대신에 'NSDateFormatter'를 사용하십시오. 'DateFormatter'입니다. 그런 다음 합리적으로 명확한 몇 가지 참고 문헌을 수정하십시오. Xcode 7이 없으므로 변경 사항을 확인할 수 없습니다. – rmaddy

+0

@EcoApps Swift 3은 훌륭한 릴리즈이지만 프로젝트를 업데이트하기 위해 언어 및 특정 수작업에 대한 약간의 지식이 필요합니다. 나는 Swift에 대한 지식이 부족한 사람들이 Youtube 튜토리얼과 Copy & Paste * Googled * 코드를 사용하여 * 많은 부정적인 리뷰 *를 작성했다고 생각합니다.예를 들어, rmaddy의 코드는'Date'와'DateFormatter'에'NS' 프리픽스를 추가하고, * 심볼 * 속성을 모두 대문자 ('AMSymbol'과'PMSymbol')로 바꾸고 스위프트 2로'string (:'와'stringFromDate ('. – vadian