나는 UIView
속성을 가진 클래스가있는 프로젝트에서 작업하고 있습니다. 또한 특정 메소드를 정의하는 UIView
의 서브 클래스 인 클래스를 정의합니다. 나는 다음과 같은 코드가있는 경우, 내가 빌드 할 때 경고를 얻을 :오브젝트 respondsTo가 여전히 경고를 던졌습니다
// In this example, myView is UIView property which *may* contain a UIView or
// my subclassed-UIView which has the myMethod method
if([myView respondsToSelector:@selector(myMethod)]){
[myView myMethod]
}
경고 "가있는 UIView가 응답하지 않을 수 있습니다 '-myMethod'"입니다. 경고는 분명히 앱이 빌드되는 것을 멈추지는 않지만, 어떻게 처리해야 하는지를 파악하려고하고 있습니다. 이 작업을 수행하는 올바른 방법입니까? 이 경고를 중지 할 수있는 방법이 있습니까?
메시지가 일반적으로 더 나은 것으로 간주됩니다에 객체가 응답 여부를 확인. 수업을 요청하는 것은 코드가 귀하의 메시지에 응답 할 것인지를 물어 보는 우회 길입니다. – Chuck
여기에있는 생각은 사용자 정의 하위 클래스에만 적용되는 코드를 작성하는 것입니다. 선택기에 응답하는지 여부는 관련성이 있지만 한 번에 둘 이상의 호출을 수행하는 경우 또는 코드가 예상 한대로 정확하게 수행되는지 여부를 확인하려면 클래스를 확인하면됩니다. – jtbandes
수업을 확인하는 것으로도 충분하지 않습니다. 그런 다음 클래스의 버전을 확인해야합니다 (가능한 경우). 그것을 JavaScript 코드에서했던 것과 비교해 볼 때, 자바 스크립트 기능이 사용 가능한지 확인하기 위해 페이지를 보는 데 사용 된 브라우저를 확인하는 것이 좋습니다. – kiamlaluno