2011-12-29 7 views
5

मैं एक विधि के लिए देख रहा था UIWebView में जावास्क्रिप्ट डिबग और मैं करने के लिए उदाहरण कोड नहीं मिल सका विशेष रूप सेआईओएस 5 - डीबगिंग के लिए निजी एपीआई संकलन - विशेष रूप से _enableRemoteInspector

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

_enableRemoteInspector के बारे में कुछ लेख भर में आया हालांकि संकलन करें। मैं "selecctor के लिए कोई ज्ञात वर्ग विधि" त्रुटि प्राप्त करना जारी रखता हूं। सिर्फ एक चेतावनी नहीं।

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

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

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

तो मैंने प्रदर्शन चयनकर्ता की कोशिश की और यह काम करता है और डीबगर वर्णन के अनुसार काम करता है।

लेकिन प्रदर्शन करने वाले का उपयोग किए बिना आप इसे कैसे संकलित करते हैं?

मैं एक्सकोड 4.2.1 चला रहा हूं और मेरी परियोजना आईओएस 5 एसडीके का उपयोग करती है।

उत्तर

7

इस नई स्वत: संदर्भ गिनती (एआरसी) आईओएस 5. नमूना कोड से लिंक में की वजह से है एक धारणा है कि आप रहे एआरसी का उपयोग नहीं कर बनाता है।

यदि आप एआरसी का उपयोग नहीं कर रहे थे, [NSClassFromString(@"WebView") _enableRemoteInspector] बस "विधि नहीं मिली" चेतावनी उत्पन्न करेगा (क्योंकि विधि सार्वजनिक रूप से घोषित नहीं की गई है)।

हालांकि, एआरसी सक्षम होने पर विभिन्न कारणों से यह चेतावनी एक त्रुटि बन जाती है। यदि आप इसे performSelector का उपयोग किए बिना संकलित करना चाहते हैं तो आपको एआरसी को अक्षम करने की आवश्यकता होगी।

+0

चेतावनी से रास्ता एआरसी एक त्रुटि बन जाती है? क्या आपके पास कोई संदर्भ है? मैं आवश्यक कारण जानना चाहता हूं। – iHTCboy

संबंधित मुद्दे