Вызовите частный символ C ++ в Objective- C - PullRequest
0 голосов
/ 03 февраля 2020

Примечание: это для частного, не проверенного App Store проекта.

Мне нужно вызывать частные методы C ++ для нескольких частных классов WebKit (например, WebPageProxy). Я знаю, как получить указатель на экземпляр этого класса, но не могу вызывать методы для него.

nm dunp двоичного файла WebKit ясно показывает все символы для этого класса, поэтому они по крайней мере, существует. В качестве эксперимента я создал заголовочный файл C ++, содержащий некоторые из этих методов, а затем попытался использовать их.

namespace WebKit {

class WebPageProxy {
    public:
        void stopLoading();
    };
};

Xcode выдал эту предсказуемую ошибку:

Undefined symbols for architecture arm64:
  "WebKit::WebPageProxy::stopLoading()", referenced from:
ld: symbol(s) not found for architecture arm64

Я был глядя на некоторые действительно экзотические c, хакерские способы доступа к этим методам, но я не профессионал в этом, поэтому мне интересно, есть ли у кого-нибудь лучшее решение?

Также: я не пытаясь остановить загрузку веб-представления. Это просто пример символа в качестве теста.

...