2014-05-20 1 views
0

비공개 선택기 cancelButtonPressed:에 액세스하고 있음을 알리는 내 애플리케이션의 유효성을 검사 할 때 문제가 발생합니다. 이 선택기는 다음과 같은 정적 라이브러리에서 호출됩니다.Payload/App Name.app의 비공개 선택기를 참조하는 앱

else if([self.delegate respondsToSelector:@selector(cancelButtonPressed:)])[self.delegate cancelButtonPressed:senderButton]; 

개인 방법입니까? 이것은 이전에 응용 프로그램을 릴리스 할 때 어떤 문제도 발생하지 않았습니다. 이 문제를 해결해야합니까, 아니면 Apple이 개인적인 방법을 호출하지 않는다는 것을 알 수 있습니까?

답변

1

cancelButtonPressed:은 Apple의 개인적인 방법입니다. 옵션을 확인하려면을 클릭하십시오. cancelButtonPressed을 클릭하면 공개 방법으로 볼 수 있습니다.
예, 사용을 중지해야합니다.
예, 때때로 애플은 물건을 놓치고 나중에 잡습니다.

아마도 Apple이 개인 메서드 catch를 트리거하는 인스턴스에서 직접 호출하는 대신 문제가되는 @selector(cancelButtonPressed:) 일 수 있습니다.

+0

내 대리자에 포함 된 일반 메서드 중 하나 일 뿐이므로 사용을 중단해야합니까? 또한 개인적인 방법 목록을 제공하므로 앞으로이 번거 로움을 피할 수 있습니까? 또한이 선택기는 어떤 객체에 속합니까? – RileyE

+0

이것은 문제가 발생하여 이전에 발생했습니다. 아마 애플이 개인 메소드 catch를 트리거하는 인스턴스를 직접 호출하는 대신에 문제가되는 것은 아마도'@selector (cancelButtonPressed :)'일 것이다. – zaph

+0

옵션이 내 '프로토콜'선언에 있기 때문에 옵션 클릭이 도움이되지 않습니다. 이 시나리오에서 옵션 클릭을 사용하는 데 어떤 용도가 있습니까? – RileyE

0

메서드 이름이 Apple 메서드 이름과 충돌 할 가능성이 높으며 개인 API 사용에 대한 잘못된보고 문제를 일으킬 수 있습니다.

대리인의 메서드 이름을 변경해보십시오.

관련 문제