2011-12-29 28 views
5

ben bir yöntem arıyordum ben örnek kod alamadım UIWebView JavaScript hata ayıklamak ve özellikleiOS 5 - hata ayıklama için özel API'leri Derleme - özellikle _enableRemoteInspector

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

_enableRemoteInspector hakkında bazı makalelere rastladım için yine de derleyin. "Seçici için bilinen bir sınıf yöntemi" hatası alıyorum. Sadece bir uyarı değil.

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

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

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

Bu nedenle performSelector'ı denedim ve bu, çalışan ve hata ayıklayıcının anlatıldığı şekilde çalışıyor.

Ama performSelector'a başvurmadan nasıl derliyorsunuz?

Xcode 4.2.1 çalıştırıyorum ve projem iOS5 SDK kullanıyor.

cevap

7

Bu, iOS 5'teki yeni Otomatik Referans Sayımından (ARC) kaynaklanmaktadır. Bağlandığınız örnek kod, ARC kullanarak değil olduğunuzu varsaymaktadır.

ARC kullanmadıysanız, [NSClassFromString(@"WebView") _enableRemoteInspector] yalnızca bir "yöntem bulunamadı" uyarısı üretecektir (çünkü yöntem herkes tarafından bildirilmemiştir). Ancak, ARC etkin olduğunda çeşitli nedenlerden dolayı bu uyarı bir hata haline gelir. performSelector kullanmadan derlemesini istiyorsanız, ARC'yi devre dışı bırakmanız gerekir.

+0

Yönlendirme ARC uyarıdan bir hata olur mu? referansın var mı Temel sebebi bilmek istiyorum. – iHTCboy

İlgili konular