我一直在寻找一种在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/