2016-12-18 1 views
-1

ios에서 충돌을 일으키는 C++ 시스템 방법을 발견했으며이 방법을 사용하려고합니다. 그러나 C++ 클래스의 메서드이기 때문에 그렇게하는 방법이 없습니다. 아무도 그걸 할 수 있는지 아니?objective-c 오버라이드 시스템 방법

답변

0

메서드 swizzling은 objective-c (고유 한 점을주의 깊게 사용해야 함)에 고유하며 C++에는 적용 할 수 없습니다.

나는 당신이 C++ 클래스의 소스 코드에 액세스 할 수 없다고 생각한다. 그런 다음 특정 C++ 클래스에서 메서드의 구현을 "교환"하는 유일한 방법은 하위 클래스를 파생시키고 메서드를 재정의 한 다음 다른 클래스 대신 하위 클래스가 사용되는지 확인하는 것입니다. 아직도 기회가있을 것 같지 않습니다. 메소드가 가상이 아니고 대체 할 클래스가 비 다형성 방식으로 사용되고 대체 할 클래스가 이미 여러 하위 클래스가있는 경우 이러한 각 포인트는 사용자가 성공하지 못하게합니다.

행운을 빌어 요!

+0

대단히 감사합니다. –

관련 문제