2014-10-24 2 views
0

NSObject에서 하위 클래스를 만들 이유가없는 클래스가 있습니다. 단, 이제는 프로토콜에 응답하기를 원합니다.NSObject에서 서브 클래 싱하지 않고 NSObjectProtocol을 준수하는 프로토콜을 준수합니까?

does not conform to protocol 'NSObjectProtocol'

난 그냥 그래서이 프로토콜에 응답 할 수 있습니다, NSObject의에서 서브 클래스, 따라서 그 서브 클래스 내 클래스의 초기화 메소드를 모두와 모두를 포함해야하고 싶지 않은 :하지만 오류를 얻을 . 주위에 방법이 있습니까?

+0

왜 NSObjectProtocol을 준수해야합니까? – newacct

답변

-1
import Foundation 

class A: NSObject { 

} 

func f(value: NSObjectProtocol) { 

} 
let a: A = A() 
f(a) 

따라서 NSObjectProtocol에 '응답'하기 위해 '포함'(구현) 할 필요는 없습니다. 대답해야 할 질문은 "왜 NSObjectProtocol을 준수해야합니까?"입니다. 답은 코드의 다른 부분입니다. 아마도 'ObjectiveC 기능성'을 사용하기 때문일 것입니다.

+0

프로토콜 @Andrew가 NSObjectProtocol에서 내려온 프로토콜을 따르려고하므로 요구 사항을 상속받습니다. –

+0

그래서 가장 간단한 방법은 NSObject를 서브 클래스 화하고 다른 것이 무엇인지를 재정의하는 것입니다. 그렇지 않습니까? – user3441734

0

추측했듯이 준수하려는 프로토콜은 NSObjectProtocol에 있습니다. 불행히도 기본적으로 NSObject에서 상속받습니다. NSObjectProtocol을 올바르게 채택하는 것은 순수 Swift 클래스에서 매우 어려울 것이며, 따라서 여러분은 NSObject에서 하위 클래스로 분류하는 것과 동일한 모든 문제를 소개 할 것입니다.