2014-06-12 3 views
1

Swift 클래스에서 새 객체를 인스턴스화 할 때 Extra Argument 'frameCaptureDate'오류가 발생합니다. 코드가 첨부되었습니다. 놀이터에서 일어납니다 & 앱.Swift 클래스를 인스턴스화 할 때 호출 사이트 오류가 발생했습니다.

class SwiftFrame <NSCoding> { 

    var frameFilePath: NSURL 
    var frameCaptureDate: NSDate 

    init(frameFilePath: NSURL, frameCaptureDate: NSDate) { 
     self.frameFilePath = frameFilePath 
     self.frameCaptureDate = frameCaptureDate 
    } 

    init(coder: NSCoder) { 
     self.frameCaptureDate = coder.decodeObjectForKey("GIFFrameCaptureDate") as NSDate 
     self.frameFilePath = coder.decodeObjectForKey("GIFFrameFilePath") as NSURL 
    } 

    func encodeWithCoder(aCoder: NSCoder) { 
     aCoder.encodeObject(self.frameCaptureDate, forKey: "GIFFrameCaptureDate") 
     aCoder.encodeObject(self.frameFilePath, forKey: "GIFFrameFilePath") 
    } 

} 

var date = NSDate.date() 
var urlstring = NSURL(string: "http://apple.com") 
var sf = SwiftFrame(frameFilePath: urlstring, frameCaptureDate: date) //Error here: "Extra Argument 'frameCaptureDate' In Call" 

답변

2

오류가 클래스 선언의 구문 오류로 인한 부작용 인 것으로 보입니다. Swift에서 이것은 프로토콜 준수를 지정하는 방법입니다.

class SwiftFrame: NSCoding { 
    // stuff 
} 
+1

예! 네 말이 맞아, 네가 수퍼 클래스 나 프로토콜을 의미하는지 감지한다. 그럼 나 한테 대답 해 주마. – Cocoadelica

관련 문제