最近需要对UIWebView内请求的静态文件做缓存,还要把Gif替换成静态图以节约CPU资源等,于是查了一下私有API可不可以抓取UIWebView内的请求打个标记,以便NSURLProtocol中可以准确判断是不是UIWebView发出的请求。
经调试发现hook webThreadWebView:resource:willSendRequest:redirectResponse:fromDataSource:
可以做这件事。调试过程就不细说了。
首先是dump类方法列表的函数:
#include <objc/runtime.h> void DumpObjcMethods(Class clz) { unsigned int methodCount = 0; Method *methods = class_copyMethodList(clz, &methodCount); printf("Found %d methods on '%s'/n", methodCount, class_getName(clz)); for (unsigned int i = 0; i < methodCount; i++) { Method method = methods[i]; printf("/t'%s' has method named '%s' of encoding '%s'/n", class_getName(clz), sel_getName(method_getName(method)), method_getTypeEncoding(method)); /** * Or do whatever you need here... */ } free(methods); }
然后附一份iOS9.3/8.4的NSURLRequest和UIWebView的方法列表。
iOS 9.3
Found 44 methods on 'NSURLRequest' 'NSURLRequest' has method named 'dealloc' of encoding 'v8@0:4' 'NSURLRequest' has method named 'copyWithZone:' of encoding '@12@0:4^{_NSZone=}8' 'NSURLRequest' has method named 'mutableCopyWithZone:' of encoding '@12@0:4^{_NSZone=}8' 'NSURLRequest' has method named 'description' of encoding '@8@0:4' 'NSURLRequest' has method named 'hash' of encoding 'I8@0:4' 'NSURLRequest' has method named 'isEqual:' of encoding 'c12@0:4@8' 'NSURLRequest' has method named 'initWithURL:' of encoding '@12@0:4@8' 'NSURLRequest' has method named 'init' of encoding '@8@0:4' 'NSURLRequest' has method named '_CFURLRequest' of encoding '^{_CFURLRequest=}8@0:4' 'NSURLRequest' has method named '_initWithCFURLRequest:' of encoding '@12@0:4^{_CFURLRequest=}8' 'NSURLRequest' has method named 'HTTPBodyStream' of encoding '@8@0:4' 'NSURLRequest' has method named 'HTTPBody' of encoding '@8@0:4' 'NSURLRequest' has method named 'valueForHTTPHeaderField:' of encoding '@12@0:4@8' 'NSURLRequest' has method named 'URL' of encoding '@8@0:4' 'NSURLRequest' has method named 'encodeWithCoder:' of encoding 'v12@0:4@8' 'NSURLRequest' has method named 'initWithCoder:' of encoding '@12@0:4@8' 'NSURLRequest' has method named '_startTimeoutDate' of encoding '@8@0:4' 'NSURLRequest' has method named '_payloadTransmissionTimeout' of encoding 'd8@0:4' 'NSURLRequest' has method named 'initWithURL:cachePolicy:timeoutInterval:' of encoding '@24@0:4@8I12d16' 'NSURLRequest' has method named 'HTTPMethod' of encoding '@8@0:4' 'NSURLRequest' has method named 'mainDocumentURL' of encoding '@8@0:4' 'NSURLRequest' has method named '_URLHasScheme:' of encoding 'c12@0:4@8' 'NSURLRequest' has method named '_isSafeRequestForBackgroundDownload' of encoding 'c8@0:4' 'NSURLRequest' has method named '_propertyForKey:' of encoding '@12@0:4@8' 'NSURLRequest' has method named '_setProperty:forKey:' of encoding 'v16@0:4@8@12' 'NSURLRequest' has method named '_removePropertyForKey:' of encoding 'v12@0:4@8' 'NSURLRequest' has method named 'HTTPShouldHandleCookies' of encoding 'c8@0:4' 'NSURLRequest' has method named 'allHTTPHeaderFields' of encoding '@8@0:4' 'NSURLRequest' has method named '_timeWindowDelay' of encoding 'd8@0:4' 'NSURLRequest' has method named '_timeWindowDuration' of encoding 'd8@0:4' 'NSURLRequest' has method named '_requiresShortConnectionTimeout' of encoding 'c8@0:4' 'NSURLRequest' has method named 'cachePolicy' of encoding 'I8@0:4' 'NSURLRequest' has method named 'timeoutInterval' of encoding 'd8@0:4' 'NSURLRequest' has method named '_copyReplacingURLWithURL:' of encoding '@12@0:4@8' 'NSURLRequest' has method named 'networkServiceType' of encoding 'I8@0:4' 'NSURLRequest' has method named 'allowsCellularAccess' of encoding 'c8@0:4' 'NSURLRequest' has method named 'boundInterfaceIdentifier' of encoding '@8@0:4' 'NSURLRequest' has method named 'HTTPContentType' of encoding '@8@0:4' 'NSURLRequest' has method named 'HTTPExtraCookies' of encoding '@8@0:4' 'NSURLRequest' has method named 'HTTPReferrer' of encoding '@8@0:4' 'NSURLRequest' has method named 'HTTPUserAgent' of encoding '@8@0:4' 'NSURLRequest' has method named 'HTTPShouldUsePipelining' of encoding 'c8@0:4' 'NSURLRequest' has method named 'contentDispositionEncodingFallbackArray' of encoding '@8@0:4' 'NSURLRequest' has method named 'expectedWorkload' of encoding 'Q8@0:4' Found 172 methods on 'UIWebView' 'UIWebView' has method named '_populateArchivedSubviews:' of encoding 'v12@0:4@8' 'UIWebView' has method named 'scrollViewDidScroll:' of encoding 'v12@0:4@8' 'UIWebView' has method named 'scrollViewDidZoom:' of encoding 'v12@0:4@8' 'UIWebView' has method named 'scrollViewWillBeginDragging:' of encoding 'v12@0:4@8' 'UIWebView' has method named 'scrollViewDidEndDragging:willDecelerate:' of encoding 'v16@0:4@8c12' 'UIWebView' has method named 'scrollViewDidEndDecelerating:' of encoding 'v12@0:4@8' 'UIWebView' has method named 'viewForZoomingInScrollView:' of encoding '@12@0:4@8' 'UIWebView' has method named 'scrollViewWillBeginZooming:withView:' of encoding 'v16@0:4@8@12' 'UIWebView' has method named 'scrollViewDidEndZooming:withView:atScale:' of encoding 'v20@0:4@8@12f16' 'UIWebView' has method named 'scrollViewDidScrollToTop:' of encoding 'v12@0:4@8' 'UIWebView' has method named 'sizeThatFits:' of encoding '{CGSize=ff}16@0:4{CGSize=ff}8' 'UIWebView' has method named 'canPerformAction:withSender:' of encoding 'c16@0:4:8@12' 'UIWebView' has method named 'alertView:didDismissWithButtonIndex:' of encoding 'v16@0:4@8i12' 'UIWebView' has method named 'encodeRestorableStateWithCoder:' of encoding 'v12@0:4@8' 'UIWebView' has method named 'decodeRestorableStateWithCoder:' of encoding 'v12@0:4@8' 'UIWebView' has method named 'scrollView' of encoding '@8@0:4' 'UIWebView' has method named 'newSnapshotWithRect:' of encoding '^{CGImage=}24@0:4{CGRect={CGPoint=ff}{CGSize=ff}}8' 'UIWebView' has method named 'createSnapshotWithRect:' of encoding '^{CGImage=}24@0:4{CGRect={CGPoint=ff}{CGSize=ff}}8' 'UIWebView' has method named '_appliesExclusiveTouchToSubviewTree' of encoding 'c8@0:4' 'UIWebView' has method named '_pageCount' of encoding 'I8@0:4' 'UIWebView' has method named 'setDataDetectorTypes:' of encoding 'v12@0:4I8' 'UIWebView' has method named 'dataDetectorTypes' of encoding 'I8@0:4' 'UIWebView' has method named 'selectAll:' of encoding 'v12@0:4@8' 'UIWebView' has method named 'copy:' of encoding 'v12@0:4@8' 'UIWebView' has method named '_define:' of encoding 'v12@0:4@8' 'UIWebView' has method named '_share:' of encoding 'v12@0:4@8' 'UIWebView' has method named '_lookup:' of encoding 'v16@0:4{CGPoint=ff}8' 'UIWebView' has method named '_addShortcut:' of encoding 'v12@0:4@8' 'UIWebView' has method named 'select:' of encoding 'v12@0:4@8' 'UIWebView' has method named '_printFormatterClass' of encoding '#8@0:4' 'UIWebView' has method named 'loadHTMLString:baseURL:' of encoding 'v16@0:4@8@12' 'UIWebView' has method named 'view:didSetFrame:oldFrame:' of encoding 'v44@0:4@8{CGRect={CGPoint=ff}{CGSize=ff}}12{CGRect={CGPoint=ff}{CGSize=ff}}28' 'UIWebView' has method named 'webViewMainFrameDidFinishLoad:' of encoding 'v12@0:4@8' 'UIWebView' has method named 'webViewMainFrameDidFailLoad:withError:' of encoding 'v16@0:4@8@12' 'UIWebView' has method named 'webViewMainFrameDidCommitLoad:' of encoding 'v12@0:4@8' 'UIWebView' has method named 'saveStateToHistoryItem:forWebView:' of encoding 'v16@0:4@8@12' 'UIWebView' has method named 'restoreStateFromHistoryItem:forWebView:' of encoding 'v16@0:4@8@12' 'UIWebView' has method named 'setMediaPlaybackAllowsAirPlay:' of encoding 'v12@0:4c8' 'UIWebView' has method named 'mediaPlaybackAllowsAirPlay' of encoding 'c8@0:4' 'UIWebView' has method named 'setDetectsPhoneNumbers:' of encoding 'v12@0:4c8' 'UIWebView' has method named 'detectsPhoneNumbers' of encoding 'c8@0:4' 'UIWebView' has method named 'setSuppressesIncrementalRendering:' of encoding 'v12@0:4c8' 'UIWebView' has method named '_alwaysConstrainsScale' of encoding 'c8@0:4' 'UIWebView' has method named 'allowsLinkPreview' of encoding 'c8@0:4' 'UIWebView' has method named '_webView:previewIsAllowedForPosition:' of encoding 'c20@0:4@8{CGPoint=ff}12' 'UIWebView' has method named '_webView:previewViewControllerForURL:' of encoding '@16@0:4@8@12' 'UIWebView' has method named '_webView:willPresentPreview:' of encoding 'v16@0:4@8@12' 'UIWebView' has method named '_webView:didDismissPreview:committing:' of encoding 'v20@0:4@8@12c16' 'UIWebView' has method named '_webView:commitPreview:' of encoding 'v16@0:4@8@12' 'UIWebView' has method named '_webView:presentationSnapshotForPreview:' of encoding '@16@0:4@8@12' 'UIWebView' has method named '_webView:presentationRectsForPreview:' of encoding '@16@0:4@8@12' 'UIWebView' has method named 'pageCount' of encoding 'I8@0:4' 'UIWebView' has method named '_documentView' of encoding '@8@0:4' 'UIWebView' has method named 'scrollViewWasRemoved:' of encoding 'v12@0:4@8' 'UIWebView' has method named 'scalesPageToFit' of encoding 'c8@0:4' 'UIWebView' has method named '_updateViewSettings' of encoding 'v8@0:4' 'UIWebView' has method named '_browserView' of encoding '@8@0:4' 'UIWebView' has method named '_setScalesPageToFitViewportSettings' of encoding 'v8@0:4' 'UIWebView' has method named '_setRichTextReaderViewportSettings' of encoding 'v8@0:4' 'UIWebView' has method named '_updateBrowserViewExposedScrollViewRect' of encoding 'v8@0:4' 'UIWebView' has method named '_updateCheckeredPattern' of encoding 'v8@0:4' 'UIWebView' has method named '_setDrawInWebThread:' of encoding 'v12@0:4c8' 'UIWebView' has method named '_updateOpaqueAndBackgroundColor' of encoding 'v8@0:4' 'UIWebView' has method named '_didRotate:' of encoding 'v12@0:4@8' 'UIWebView' has method named 'setScalesPageToFit:' of encoding 'v12@0:4c8' 'UIWebView' has method named '_webViewCommonInitWithWebView:scalesPageToFit:' of encoding 'v16@0:4@8c12' 'UIWebView' has method named 'stringByEvaluatingJavaScriptFromString:' of encoding '@12@0:4@8' 'UIWebView' has method named 'setAllowsInlineMediaPlayback:' of encoding 'v12@0:4c8' 'UIWebView' has method named 'allowsInlineMediaPlayback' of encoding 'c8@0:4' 'UIWebView' has method named 'setMediaPlaybackRequiresUserAction:' of encoding 'v12@0:4c8' 'UIWebView' has method named 'mediaPlaybackRequiresUserAction' of encoding 'c8@0:4' 'UIWebView' has method named 'setAllowsLinkPreview:' of encoding 'v12@0:4c8' 'UIWebView' has method named 'canGoBack' of encoding 'c8@0:4' 'UIWebView' has method named 'canGoForward' of encoding 'c8@0:4' 'UIWebView' has method named '_rescaleDocument' of encoding 'v8@0:4' 'UIWebView' has method named '_frameOrBoundsChanged' of encoding 'v8@0:4' 'UIWebView' has method named '_updateScrollerViewForInputView:' of encoding 'v12@0:4@8' 'UIWebView' has method named '_didCompleteScrolling' of encoding 'v8@0:4' 'UIWebView' has method named '_reportError:' of encoding 'v12@0:4@8' 'UIWebView' has method named '_updateRequest' of encoding 'v8@0:4' 'UIWebView' has method named '_makeAlertView' of encoding '@8@0:4' 'UIWebView' has method named 'paginationMode' of encoding 'i8@0:4' 'UIWebView' has method named '_paginationMode' of encoding 'i8@0:4' 'UIWebView' has method named 'setPaginationMode:' of encoding 'v12@0:4i8' 'UIWebView' has method named '_setPaginationMode:' of encoding 'v12@0:4i8' 'UIWebView' has method named 'paginationBreakingMode' of encoding 'i8@0:4' 'UIWebView' has method named '_paginationBehavesLikeColumns' of encoding 'c8@0:4' 'UIWebView' has method named 'setPaginationBreakingMode:' of encoding 'v12@0:4i8' 'UIWebView' has method named '_setPaginationBehavesLikeColumns:' of encoding 'v12@0:4c8' 'UIWebView' has method named 'pageLength' of encoding 'f8@0:4' 'UIWebView' has method named '_pageLength' of encoding 'f8@0:4' 'UIWebView' has method named 'setPageLength:' of encoding 'v12@0:4f8' 'UIWebView' has method named '_setPageLength:' of encoding 'v12@0:4f8' 'UIWebView' has method named 'gapBetweenPages' of encoding 'f8@0:4' 'UIWebView' has method named '_gapBetweenPages' of encoding 'f8@0:4' 'UIWebView' has method named 'setGapBetweenPages:' of encoding 'v12@0:4f8' 'UIWebView' has method named '_setGapBetweenPages:' of encoding 'v12@0:4f8' 'UIWebView' has method named 'keyboardDisplayRequiresUserAction' of encoding 'c8@0:4' 'UIWebView' has method named 'setKeyboardDisplayRequiresUserAction:' of encoding 'v12@0:4c8' 'UIWebView' has method named '_initWithFrame:enableReachability:' of encoding '@28@0:4{CGRect={CGPoint=ff}{CGSize=ff}}8c24' 'UIWebView' has method named '_beginRotation' of encoding 'v8@0:4' 'UIWebView' has method named '_finishRotation' of encoding 'v8@0:4' 'UIWebView' has method named 'webViewMainFrameDidFirstVisuallyNonEmptyLayoutInFrame:' of encoding 'v12@0:4@8' 'UIWebView' has method named '_initWithWebView:' of encoding '@12@0:4@8' 'UIWebView' has method named '_pdfViewHandler' of encoding '@8@0:4' 'UIWebView' has method named '_setOverridesOrientationChangeEventHandling:' of encoding 'v12@0:4c8' 'UIWebView' has method named '_setDrawsCheckeredPattern:' of encoding 'v12@0:4c8' 'UIWebView' has method named '_setWebSelectionEnabled:' of encoding 'v12@0:4c8' 'UIWebView' has method named '_setAlwaysConstrainsScale:' of encoding 'v12@0:4c8' 'UIWebView' has method named '_setAlwaysDispatchesScrollEvents:' of encoding 'v12@0:4c8' 'UIWebView' has method named '_alwaysDispatchesScrollEvents' of encoding 'c8@0:4' 'UIWebView' has method named '_setAudioSessionCategoryOverride:' of encoding 'v12@0:4I8' 'UIWebView' has method named '_audioSessionCategoryOverride' of encoding 'I8@0:4' 'UIWebView' has method named '_setAllowsPictureInPictureVideo:' of encoding 'v12@0:4c8' 'UIWebView' has method named '_allowsPictureInPictureVideo' of encoding 'c8@0:4' 'UIWebView' has method named '_setNetworkInterfaceName:' of encoding 'v12@0:4@8' 'UIWebView' has method named '_networkInterfaceName' of encoding '@8@0:4' 'UIWebView' has method named 'configureWithSettings:' of encoding 'v12@0:4@8' 'UIWebView' has method named 'isElementAccessibilityExposedToInterfaceBuilder' of encoding 'c8@0:4' 'UIWebView' has method named 'dealloc' of encoding 'v8@0:4' 'UIWebView' has method named 'setDelegate:' of encoding 'v12@0:4@8' 'UIWebView' has method named 'setBackgroundColor:' of encoding 'v12@0:4@8' 'UIWebView' has method named 'initWithFrame:' of encoding '@24@0:4{CGRect={CGPoint=ff}{CGSize=ff}}8' 'UIWebView' has method named 'loadData:MIMEType:textEncodingName:baseURL:' of encoding 'v24@0:4@8@12@16@20' 'UIWebView' has method named 'setFrame:' of encoding 'v24@0:4{CGRect={CGPoint=ff}{CGSize=ff}}8' 'UIWebView' has method named 'setBounds:' of encoding 'v24@0:4{CGRect={CGPoint=ff}{CGSize=ff}}8' 'UIWebView' has method named 'goBack' of encoding 'v8@0:4' 'UIWebView' has method named 'goForward' of encoding 'v8@0:4' 'UIWebView' has method named 'webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:' of encoding 'v20@0:4@8@12@16' 'UIWebView' has method named 'webView:runJavaScriptConfirmPanelWithMessage:initiatedByFrame:' of encoding 'c20@0:4@8@12@16' 'UIWebView' has method named 'webView:runJavaScriptTextInputPanelWithPrompt:defaultText:initiatedByFrame:' of encoding '@24@0:4@8@12@16@20' 'UIWebView' has method named 'webView:printFrameView:' of encoding 'v16@0:4@8@12' 'UIWebView' has method named 'webView:frame:exceededDatabaseQuotaForSecurityOrigin:database:' of encoding 'v24@0:4@8@12@16@20' 'UIWebView' has method named 'webView:exceededApplicationCacheOriginQuotaForSecurityOrigin:totalSpaceNeeded:' of encoding 'v20@0:4@8@12I16' 'UIWebView' has method named 'isLoading' of encoding 'c8@0:4' 'UIWebView' has method named 'webView:decidePolicyForNavigationAction:request:frame:decisionListener:' of encoding 'v28@0:4@8@12@16@20@24' 'UIWebView' has method named 'webView:decidePolicyForNewWindowAction:request:newFrameName:decisionListener:' of encoding 'v28@0:4@8@12@16@20@24' 'UIWebView' has method named 'webView:decidePolicyForMIMEType:request:frame:decisionListener:' of encoding 'v28@0:4@8@12@16@20@24' 'UIWebView' has method named 'webView:unableToImplementPolicyWithError:frame:' of encoding 'v20@0:4@8@12@16' 'UIWebView' has method named 'webViewClose:' of encoding 'v12@0:4@8' 'UIWebView' has method named 'webViewSupportedOrientationsUpdated:' of encoding 'v12@0:4@8' 'UIWebView' has method named 'webView:didStartProvisionalLoadForFrame:' of encoding 'v16@0:4@8@12' 'UIWebView' has method named 'webView:didReceiveServerRedirectForProvisionalLoadForFrame:' of encoding 'v16@0:4@8@12' 'UIWebView' has method named 'webView:didFailProvisionalLoadWithError:forFrame:' of encoding 'v20@0:4@8@12@16' 'UIWebView' has method named 'webView:didCommitLoadForFrame:' of encoding 'v16@0:4@8@12' 'UIWebView' has method named 'webView:didReceiveTitle:forFrame:' of encoding 'v20@0:4@8@12@16' 'UIWebView' has method named 'webView:didFinishLoadForFrame:' of encoding 'v16@0:4@8@12' 'UIWebView' has method named 'webView:didFailLoadWithError:forFrame:' of encoding 'v20@0:4@8@12@16' 'UIWebView' has method named 'webView:didChangeLocationWithinPageForFrame:' of encoding 'v16@0:4@8@12' 'UIWebView' has method named 'webView:didClearWindowObject:forFrame:' of encoding 'v20@0:4@8@12@16' 'UIWebView' has method named 'webView:didFirstLayoutInFrame:' of encoding 'v16@0:4@8@12' 'UIWebView' has method named '_scrollView' of encoding '@8@0:4' 'UIWebView' has method named 'loadRequest:' of encoding 'v12@0:4@8' 'UIWebView' has method named 'reload' of encoding 'v8@0:4' 'UIWebView' has method named 'webView:identifierForInitialRequest:fromDataSource:' of encoding '@20@0:4@8@12@16' 'UIWebView' has method named 'webThreadWebView:resource:willSendRequest:redirectResponse:fromDataSource:' of encoding '@28@0:4@8@12@16@20@24' 'UIWebView' has method named 'webView:resource:didReceiveAuthenticationChallenge:fromDataSource:' of encoding 'v24@0:4@8@12@16@20' 'UIWebView' has method named 'webView:resource:canAuthenticateAgainstProtectionSpace:forDataSource:' of encoding 'c24@0:4@8@12@16@20' 'UIWebView' has method named 'webView:connectionPropertiesForResource:dataSource:' of encoding '@20@0:4@8@12@16' 'UIWebView' has method named 'webView:resource:didCancelAuthenticationChallenge:fromDataSource:' of encoding 'v24@0:4@8@12@16@20' 'UIWebView' has method named 'webView:resource:didFinishLoadingFromDataSource:' of encoding 'v20@0:4@8@12@16' 'UIWebView' has method named 'webView:resource:didFailLoadingWithError:fromDataSource:' of encoding 'v24@0:4@8@12@16@20' 'UIWebView' has method named 'webView:decidePolicyForGeolocationRequestFromOrigin:frame:listener:' of encoding 'v24@0:4@8@12@16@20' 'UIWebView' has method named 'suppressesIncrementalRendering' of encoding 'c8@0:4' 'UIWebView' has method named 'allowsPictureInPictureMediaPlayback' of encoding 'c8@0:4' 'UIWebView' has method named 'setAllowsPictureInPictureMediaPlayback:' of encoding 'v12@0:4c8' 'UIWebView' has method named 'setOpaque:' of encoding 'v12@0:4c8' 'UIWebView' has method named 'stopLoading' of encoding 'v8@0:4' 'UIWebView' has method named 'encodeWithCoder:' of encoding 'v12@0:4@8' 'UIWebView' has method named 'initWithCoder:' of encoding '@12@0:4@8' 'UIWebView' has method named 'request' of encoding '@8@0:4' 'UIWebView' has method named 'delegate' of encoding '@8@0:4'
iOS 8.4
Found 44 methods on 'NSURLRequest' 'NSURLRequest' has method named '_web_HTTPReferrer' of encoding '@8@0:4' 'NSURLRequest' has method named '_web_HTTPContentType' of encoding '@8@0:4' 'NSURLRequest' has method named '_web_isConditionalRequest' of encoding 'c8@0:4' 'NSURLRequest' has method named 'copyWithZone:' of encoding '@12@0:4^{_NSZone=}8' 'NSURLRequest' has method named 'mutableCopyWithZone:' of encoding '@12@0:4^{_NSZone=}8' 'NSURLRequest' has method named 'description' of encoding '@8@0:4' 'NSURLRequest' has method named 'dealloc' of encoding 'v8@0:4' 'NSURLRequest' has method named 'hash' of encoding 'I8@0:4' 'NSURLRequest' has method named 'isEqual:' of encoding 'c12@0:4@8' 'NSURLRequest' has method named 'initWithURL:' of encoding '@12@0:4@8' 'NSURLRequest' has method named 'init' of encoding '@8@0:4' 'NSURLRequest' has method named '_CFURLRequest' of encoding '^{_CFURLRequest=}8@0:4' 'NSURLRequest' has method named '_initWithCFURLRequest:' of encoding '@12@0:4^{_CFURLRequest=}8' 'NSURLRequest' has method named 'HTTPBodyStream' of encoding '@8@0:4' 'NSURLRequest' has method named 'HTTPBody' of encoding '@8@0:4' 'NSURLRequest' has method named 'valueForHTTPHeaderField:' of encoding '@12@0:4@8' 'NSURLRequest' has method named 'URL' of encoding '@8@0:4' 'NSURLRequest' has method named 'encodeWithCoder:' of encoding 'v12@0:4@8' 'NSURLRequest' has method named 'initWithCoder:' of encoding '@12@0:4@8' 'NSURLRequest' has method named 'initWithURL:cachePolicy:timeoutInterval:' of encoding '@24@0:4@8I12d16' 'NSURLRequest' has method named 'HTTPMethod' of encoding '@8@0:4' 'NSURLRequest' has method named 'mainDocumentURL' of encoding '@8@0:4' 'NSURLRequest' has method named '_URLHasScheme:' of encoding 'c12@0:4@8' 'NSURLRequest' has method named '_isSafeRequestForBackgroundDownload' of encoding 'c8@0:4' 'NSURLRequest' has method named '_propertyForKey:' of encoding '@12@0:4@8' 'NSURLRequest' has method named '_setProperty:forKey:' of encoding 'v16@0:4@8@12' 'NSURLRequest' has method named '_removePropertyForKey:' of encoding 'v12@0:4@8' 'NSURLRequest' has method named 'cachePolicy' of encoding 'I8@0:4' 'NSURLRequest' has method named 'HTTPShouldHandleCookies' of encoding 'c8@0:4' 'NSURLRequest' has method named 'allHTTPHeaderFields' of encoding '@8@0:4' 'NSURLRequest' has method named '_timeWindowDelay' of encoding 'd8@0:4' 'NSURLRequest' has method named '_timeWindowDuration' of encoding 'd8@0:4' 'NSURLRequest' has method named 'timeoutInterval' of encoding 'd8@0:4' 'NSURLRequest' has method named '_copyReplacingURLWithURL:' of encoding '@12@0:4@8' 'NSURLRequest' has method named 'networkServiceType' of encoding 'I8@0:4' 'NSURLRequest' has method named 'allowsCellularAccess' of encoding 'c8@0:4' 'NSURLRequest' has method named 'boundInterfaceIdentifier' of encoding '@8@0:4' 'NSURLRequest' has method named 'HTTPContentType' of encoding '@8@0:4' 'NSURLRequest' has method named 'HTTPExtraCookies' of encoding '@8@0:4' 'NSURLRequest' has method named 'HTTPReferrer' of encoding '@8@0:4' 'NSURLRequest' has method named 'HTTPUserAgent' of encoding '@8@0:4' 'NSURLRequest' has method named 'HTTPShouldUsePipelining' of encoding 'c8@0:4' 'NSURLRequest' has method named 'contentDispositionEncodingFallbackArray' of encoding '@8@0:4' 'NSURLRequest' has method named 'expectedWorkload' of encoding 'Q8@0:4' Found 155 methods on 'UIWebView' 'UIWebView' has method named '_populateArchivedSubviews:' of encoding 'v12@0:4@8' 'UIWebView' has method named 'scrollViewDidScroll:' of encoding 'v12@0:4@8' 'UIWebView' has method named 'scrollViewDidZoom:' of encoding 'v12@0:4@8' 'UIWebView' has method named 'scrollViewWillBeginDragging:' of encoding 'v12@0:4@8' 'UIWebView' has method named 'scrollViewDidEndDragging:willDecelerate:' of encoding 'v16@0:4@8c12' 'UIWebView' has method named 'scrollViewDidEndDecelerating:' of encoding 'v12@0:4@8' 'UIWebView' has method named 'viewForZoomingInScrollView:' of encoding '@12@0:4@8' 'UIWebView' has method named 'scrollViewWillBeginZooming:withView:' of encoding 'v16@0:4@8@12' 'UIWebView' has method named 'scrollViewDidEndZooming:withView:atScale:' of encoding 'v20@0:4@8@12f16' 'UIWebView' has method named 'scrollViewDidScrollToTop:' of encoding 'v12@0:4@8' 'UIWebView' has method named 'sizeThatFits:' of encoding '{CGSize=ff}16@0:4{CGSize=ff}8' 'UIWebView' has method named 'canPerformAction:withSender:' of encoding 'c16@0:4:8@12' 'UIWebView' has method named 'alertView:didDismissWithButtonIndex:' of encoding 'v16@0:4@8i12' 'UIWebView' has method named 'encodeRestorableStateWithCoder:' of encoding 'v12@0:4@8' 'UIWebView' has method named 'decodeRestorableStateWithCoder:' of encoding 'v12@0:4@8' 'UIWebView' has method named 'newSnapshotWithRect:' of encoding '^{CGImage=}24@0:4{CGRect={CGPoint=ff}{CGSize=ff}}8' 'UIWebView' has method named 'createSnapshotWithRect:' of encoding '^{CGImage=}24@0:4{CGRect={CGPoint=ff}{CGSize=ff}}8' 'UIWebView' has method named '_appliesExclusiveTouchToSubviewTree' of encoding 'c8@0:4' 'UIWebView' has method named 'scrollView' of encoding '@8@0:4' 'UIWebView' has method named 'setDataDetectorTypes:' of encoding 'v12@0:4I8' 'UIWebView' has method named 'dataDetectorTypes' of encoding 'I8@0:4' 'UIWebView' has method named 'selectAll:' of encoding 'v12@0:4@8' 'UIWebView' has method named 'copy:' of encoding 'v12@0:4@8' 'UIWebView' has method named '_define:' of encoding 'v12@0:4@8' 'UIWebView' has method named '_addShortcut:' of encoding 'v12@0:4@8' 'UIWebView' has method named 'select:' of encoding 'v12@0:4@8' 'UIWebView' has method named '_printFormatterClass' of encoding '#8@0:4' 'UIWebView' has method named 'loadHTMLString:baseURL:' of encoding 'v16@0:4@8@12' 'UIWebView' has method named 'view:didSetFrame:oldFrame:' of encoding 'v44@0:4@8{CGRect={CGPoint=ff}{CGSize=ff}}12{CGRect={CGPoint=ff}{CGSize=ff}}28' 'UIWebView' has method named 'webViewMainFrameDidFinishLoad:' of encoding 'v12@0:4@8' 'UIWebView' has method named 'webViewMainFrameDidFailLoad:withError:' of encoding 'v16@0:4@8@12' 'UIWebView' has method named 'webViewMainFrameDidCommitLoad:' of encoding 'v12@0:4@8' 'UIWebView' has method named 'saveStateToHistoryItem:forWebView:' of encoding 'v16@0:4@8@12' 'UIWebView' has method named 'restoreStateFromHistoryItem:forWebView:' of encoding 'v16@0:4@8@12' 'UIWebView' has method named 'setMediaPlaybackAllowsAirPlay:' of encoding 'v12@0:4c8' 'UIWebView' has method named 'setDetectsPhoneNumbers:' of encoding 'v12@0:4c8' 'UIWebView' has method named 'detectsPhoneNumbers' of encoding 'c8@0:4' 'UIWebView' has method named 'setSuppressesIncrementalRendering:' of encoding 'v12@0:4c8' 'UIWebView' has method named 'pageCount' of encoding 'I8@0:4' 'UIWebView' has method named '_documentView' of encoding '@8@0:4' 'UIWebView' has method named 'scrollViewWasRemoved:' of encoding 'v12@0:4@8' 'UIWebView' has method named 'scalesPageToFit' of encoding 'c8@0:4' 'UIWebView' has method named '_updateViewSettings' of encoding 'v8@0:4' 'UIWebView' has method named '_browserView' of encoding '@8@0:4' 'UIWebView' has method named '_setScalesPageToFitViewportSettings' of encoding 'v8@0:4' 'UIWebView' has method named '_setRichTextReaderViewportSettings' of encoding 'v8@0:4' 'UIWebView' has method named '_updateBrowserViewExposedScrollViewRect' of encoding 'v8@0:4' 'UIWebView' has method named '_updateCheckeredPattern' of encoding 'v8@0:4' 'UIWebView' has method named '_setDrawInWebThread:' of encoding 'v12@0:4c8' 'UIWebView' has method named '_updateOpaqueAndBackgroundColor' of encoding 'v8@0:4' 'UIWebView' has method named '_didRotate:' of encoding 'v12@0:4@8' 'UIWebView' has method named 'setScalesPageToFit:' of encoding 'v12@0:4c8' 'UIWebView' has method named '_webViewCommonInitWithWebView:scalesPageToFit:' of encoding 'v16@0:4@8c12' 'UIWebView' has method named 'stringByEvaluatingJavaScriptFromString:' of encoding '@12@0:4@8' 'UIWebView' has method named 'setAllowsInlineMediaPlayback:' of encoding 'v12@0:4c8' 'UIWebView' has method named 'allowsInlineMediaPlayback' of encoding 'c8@0:4' 'UIWebView' has method named 'setMediaPlaybackRequiresUserAction:' of encoding 'v12@0:4c8' 'UIWebView' has method named 'mediaPlaybackRequiresUserAction' of encoding 'c8@0:4' 'UIWebView' has method named 'canGoBack' of encoding 'c8@0:4' 'UIWebView' has method named 'canGoForward' of encoding 'c8@0:4' 'UIWebView' has method named '_rescaleDocument' of encoding 'v8@0:4' 'UIWebView' has method named '_frameOrBoundsChanged' of encoding 'v8@0:4' 'UIWebView' has method named '_updateScrollerViewForInputView:' of encoding 'v12@0:4@8' 'UIWebView' has method named '_didCompleteScrolling' of encoding 'v8@0:4' 'UIWebView' has method named '_reportError:' of encoding 'v12@0:4@8' 'UIWebView' has method named '_updateRequest' of encoding 'v8@0:4' 'UIWebView' has method named '_makeAlertView' of encoding '@8@0:4' 'UIWebView' has method named 'paginationMode' of encoding 'i8@0:4' 'UIWebView' has method named '_paginationMode' of encoding 'i8@0:4' 'UIWebView' has method named 'setPaginationMode:' of encoding 'v12@0:4i8' 'UIWebView' has method named '_setPaginationMode:' of encoding 'v12@0:4i8' 'UIWebView' has method named 'paginationBreakingMode' of encoding 'i8@0:4' 'UIWebView' has method named '_paginationBehavesLikeColumns' of encoding 'c8@0:4' 'UIWebView' has method named 'setPaginationBreakingMode:' of encoding 'v12@0:4i8' 'UIWebView' has method named '_setPaginationBehavesLikeColumns:' of encoding 'v12@0:4c8' 'UIWebView' has method named 'pageLength' of encoding 'f8@0:4' 'UIWebView' has method named '_pageLength' of encoding 'f8@0:4' 'UIWebView' has method named 'setPageLength:' of encoding 'v12@0:4f8' 'UIWebView' has method named '_setPageLength:' of encoding 'v12@0:4f8' 'UIWebView' has method named 'gapBetweenPages' of encoding 'f8@0:4' 'UIWebView' has method named '_gapBetweenPages' of encoding 'f8@0:4' 'UIWebView' has method named 'setGapBetweenPages:' of encoding 'v12@0:4f8' 'UIWebView' has method named '_setGapBetweenPages:' of encoding 'v12@0:4f8' 'UIWebView' has method named '_pageCount' of encoding 'I8@0:4' 'UIWebView' has method named 'keyboardDisplayRequiresUserAction' of encoding 'c8@0:4' 'UIWebView' has method named 'setKeyboardDisplayRequiresUserAction:' of encoding 'v12@0:4c8' 'UIWebView' has method named '_initWithFrame:enableReachability:' of encoding '@28@0:4{CGRect={CGPoint=ff}{CGSize=ff}}8c24' 'UIWebView' has method named '_beginRotation' of encoding 'v8@0:4' 'UIWebView' has method named '_finishRotation' of encoding 'v8@0:4' 'UIWebView' has method named 'webViewMainFrameDidFirstVisuallyNonEmptyLayoutInFrame:' of encoding 'v12@0:4@8' 'UIWebView' has method named '_initWithWebView:' of encoding '@12@0:4@8' 'UIWebView' has method named '_pdfViewHandler' of encoding '@8@0:4' 'UIWebView' has method named '_setOverridesOrientationChangeEventHandling:' of encoding 'v12@0:4c8' 'UIWebView' has method named '_setDrawsCheckeredPattern:' of encoding 'v12@0:4c8' 'UIWebView' has method named '_setWebSelectionEnabled:' of encoding 'v12@0:4c8' 'UIWebView' has method named '_setAlwaysDispatchesScrollEvents:' of encoding 'v12@0:4c8' 'UIWebView' has method named '_alwaysDispatchesScrollEvents' of encoding 'c8@0:4' 'UIWebView' has method named '_setAudioSessionCategoryOverride:' of encoding 'v12@0:4I8' 'UIWebView' has method named '_audioSessionCategoryOverride' of encoding 'I8@0:4' 'UIWebView' has method named '_setNetworkInterfaceName:' of encoding 'v12@0:4@8' 'UIWebView' has method named '_networkInterfaceName' of encoding '@8@0:4' 'UIWebView' has method named 'configureWithSettings:' of encoding 'v12@0:4@8' 'UIWebView' has method named 'isElementAccessibilityExposedToInterfaceBuilder' of encoding 'c8@0:4' 'UIWebView' has method named 'dealloc' of encoding 'v8@0:4' 'UIWebView' has method named 'setDelegate:' of encoding 'v12@0:4@8' 'UIWebView' has method named 'setBackgroundColor:' of encoding 'v12@0:4@8' 'UIWebView' has method named 'initWithFrame:' of encoding '@24@0:4{CGRect={CGPoint=ff}{CGSize=ff}}8' 'UIWebView' has method named 'loadData:MIMEType:textEncodingName:baseURL:' of encoding 'v24@0:4@8@12@16@20' 'UIWebView' has method named 'setFrame:' of encoding 'v24@0:4{CGRect={CGPoint=ff}{CGSize=ff}}8' 'UIWebView' has method named 'setBounds:' of encoding 'v24@0:4{CGRect={CGPoint=ff}{CGSize=ff}}8' 'UIWebView' has method named 'goBack' of encoding 'v8@0:4' 'UIWebView' has method named 'goForward' of encoding 'v8@0:4' 'UIWebView' has method named 'webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:' of encoding 'v20@0:4@8@12@16' 'UIWebView' has method named 'webView:runJavaScriptConfirmPanelWithMessage:initiatedByFrame:' of encoding 'c20@0:4@8@12@16' 'UIWebView' has method named 'webView:runJavaScriptTextInputPanelWithPrompt:defaultText:initiatedByFrame:' of encoding '@24@0:4@8@12@16@20' 'UIWebView' has method named 'webView:printFrameView:' of encoding 'v16@0:4@8@12' 'UIWebView' has method named 'webView:frame:exceededDatabaseQuotaForSecurityOrigin:database:' of encoding 'v24@0:4@8@12@16@20' 'UIWebView' has method named 'webView:exceededApplicationCacheOriginQuotaForSecurityOrigin:totalSpaceNeeded:' of encoding 'v20@0:4@8@12I16' 'UIWebView' has method named 'isLoading' of encoding 'c8@0:4' 'UIWebView' has method named 'webView:unableToImplementPolicyWithError:frame:' of encoding 'v20@0:4@8@12@16' 'UIWebView' has method named 'webView:decidePolicyForMIMEType:request:frame:decisionListener:' of encoding 'v28@0:4@8@12@16@20@24' 'UIWebView' has method named 'webView:decidePolicyForNavigationAction:request:frame:decisionListener:' of encoding 'v28@0:4@8@12@16@20@24' 'UIWebView' has method named 'webView:decidePolicyForNewWindowAction:request:newFrameName:decisionListener:' of encoding 'v28@0:4@8@12@16@20@24' 'UIWebView' has method named 'webViewClose:' of encoding 'v12@0:4@8' 'UIWebView' has method named 'webViewSupportedOrientationsUpdated:' of encoding 'v12@0:4@8' 'UIWebView' has method named 'webView:didStartProvisionalLoadForFrame:' of encoding 'v16@0:4@8@12' 'UIWebView' has method named 'webView:didReceiveServerRedirectForProvisionalLoadForFrame:' of encoding 'v16@0:4@8@12' 'UIWebView' has method named 'webView:didFailProvisionalLoadWithError:forFrame:' of encoding 'v20@0:4@8@12@16' 'UIWebView' has method named 'webView:didCommitLoadForFrame:' of encoding 'v16@0:4@8@12' 'UIWebView' has method named 'webView:didReceiveTitle:forFrame:' of encoding 'v20@0:4@8@12@16' 'UIWebView' has method named 'webView:didFinishLoadForFrame:' of encoding 'v16@0:4@8@12' 'UIWebView' has method named 'webView:didFailLoadWithError:forFrame:' of encoding 'v20@0:4@8@12@16' 'UIWebView' has method named 'webView:didChangeLocationWithinPageForFrame:' of encoding 'v16@0:4@8@12' 'UIWebView' has method named 'webView:didClearWindowObject:forFrame:' of encoding 'v20@0:4@8@12@16' 'UIWebView' has method named 'webView:didFirstLayoutInFrame:' of encoding 'v16@0:4@8@12' 'UIWebView' has method named '_scrollView' of encoding '@8@0:4' 'UIWebView' has method named 'loadRequest:' of encoding 'v12@0:4@8' 'UIWebView' has method named 'reload' of encoding 'v8@0:4' 'UIWebView' has method named 'webView:identifierForInitialRequest:fromDataSource:' of encoding '@20@0:4@8@12@16' 'UIWebView' has method named 'webThreadWebView:resource:willSendRequest:redirectResponse:fromDataSource:' of encoding '@28@0:4@8@12@16@20@24' 'UIWebView' has method named 'webView:resource:didReceiveAuthenticationChallenge:fromDataSource:' of encoding 'v24@0:4@8@12@16@20' 'UIWebView' has method named 'webView:resource:canAuthenticateAgainstProtectionSpace:forDataSource:' of encoding 'c24@0:4@8@12@16@20' 'UIWebView' has method named 'webView:connectionPropertiesForResource:dataSource:' of encoding '@20@0:4@8@12@16' 'UIWebView' has method named 'webView:resource:didCancelAuthenticationChallenge:fromDataSource:' of encoding 'v24@0:4@8@12@16@20' 'UIWebView' has method named 'webView:resource:didFinishLoadingFromDataSource:' of encoding 'v20@0:4@8@12@16' 'UIWebView' has method named 'webView:resource:didFailLoadingWithError:fromDataSource:' of encoding 'v24@0:4@8@12@16@20' 'UIWebView' has method named 'webView:decidePolicyForGeolocationRequestFromOrigin:frame:listener:' of encoding 'v24@0:4@8@12@16@20' 'UIWebView' has method named 'suppressesIncrementalRendering' of encoding 'c8@0:4' 'UIWebView' has method named 'mediaPlaybackAllowsAirPlay' of encoding 'c8@0:4' 'UIWebView' has method named 'setOpaque:' of encoding 'v12@0:4c8' 'UIWebView' has method named 'stopLoading' of encoding 'v8@0:4' 'UIWebView' has method named 'encodeWithCoder:' of encoding 'v12@0:4@8' 'UIWebView' has method named 'initWithCoder:' of encoding '@12@0:4@8' 'UIWebView' has method named 'request' of encoding '@8@0:4' 'UIWebView' has method named 'delegate' of encoding '@8@0:4'
Over