2011-12-29 22 views
5

tôi đang tìm kiếm một phương pháp để gỡ lỗi JavaScript trong UIWebView và đã xem qua một số bài viết về _enableRemoteInspector đặc biệtiOS 5 - Biên soạn API cá nhân để gỡ lỗi - đặc biệt _enableRemoteInspector

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

Tôi không thể lấy mã ví dụ để biên dịch mặc dù. Tôi tiếp tục nhận được một lỗi "Không biết phương thức lớp cho selecctor". Không chỉ là một lời cảnh báo.

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

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

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

Vì vậy, tôi đã thử performSelector và hoạt động và trình gỡ lỗi hoạt động như được mô tả.

Nhưng làm thế nào để bạn biên dịch nó mà không cần sử dụng để thực hiệnSelector?

Tôi đang chạy Xcode 4.2.1 và dự án của tôi sử dụng SDK iOS5.

Trả lời

7

Điều này là do tính năng đếm tham chiếu tự động (ARC) mới trong iOS 5. Mã mẫu bạn đã liên kết để giả định rằng bạn là không phải bằng ARC.

Nếu bạn không sử dụng ARC, [NSClassFromString(@"WebView") _enableRemoteInspector] sẽ chỉ tạo ra cảnh báo "không tìm thấy phương thức" (vì phương thức không được khai báo công khai).

Tuy nhiên, vì nhiều lý do khác nhau mà bạn đã bật ARC, cảnh báo này sẽ trở thành lỗi. Nếu bạn muốn biên dịch mà không cần sử dụng performSelector, bạn cần phải tắt ARC.

+0

Cách cảnh báo ARC trở thành lỗi? bạn có tham khảo gì không Tôi muốn biết lý do thiết yếu. – iHTCboy

Các vấn đề liên quan