我一直在寻找一种在UIWebView中调试JavaScript的方法,并且偶然发现了有关_enableRemoteInspector的一些文章。

http://atnan.com/blog/2011/11/17/enabling-remote-debugging-via-private-apis-in-mobile-safari/

我无法获取示例代码进行编译。我不断收到“Selecctor的未知类方法”错误。不只是警告。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

    //Works
    [NSClassFromString(@"WebView") performSelector:@selector(_enableRemoteInspector)];

    //Won't compile
    //[NSClassFromString(@"WebView") _enableRemoteInspector];
}

因此,我尝试了performSelector,该方法和调试器均按所述方式工作。

但是,如何在不借助performSelector的情况下进行编译?

我正在运行Xcode 4.2.1,并且我的项目使用iOS5 SDK。

最佳答案

这是由于iOS 5中新增了自动引用计数(ARC)。链接到的示例代码假设您没有使用ARC。

如果您未使用ARC,则[NSClassFromString(@"WebView") _enableRemoteInspector]只会产生“未找到方法”警告(因为该方法未公开声明)。

但是,由于各种原因,当您启用ARC时,此警告将变为错误。如果要在不使用performSelector的情况下进行编译,则需要禁用ARC。

关于javascript - iOS 5-编译专用API进行调试-特别是_enableRemoteInspector,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8666468/

10-13 01:19