2012-03-14 20 views
5

Tôi hiện đang làm việc trên lớp con NSProxy chặn các thư nhất định và không chuyển tiếp thư cho bất kỳ ai ngoài việc xử lý chúng, vì vậy các phương pháp này không bao giờ thực sự tồn tại. Và đây là vấn đề, rõ ràng trình biên dịch bắt đầu phàn nàn về việc triển khai phương thức còn thiếu và tôi không thể tìm ra cách dừng nó, thêm phương thức sơ khai vào giao diện chỉ để trình biên dịch tắt không hoạt động vì phương thức được hình thành tùy ý và tôi không biết chúng trước (để làm cho nó cụ thể hơn một chút, tôi yêu cầu dự án this). Lý tưởng nhất là tôi muốn nói với trình biên dịch rằng nó không nên làm bất kỳ phương pháp kiểm tra cho lớp này cụ thể ở tất cả, nhưng vì điều này có vẻ khá khó, tôi cũng sẽ được hạnh phúc cho một #pragma hoặc bất kỳ cách nào khác (mà doesn 'mà không cần phải làm gì?). t bao gồm để đóng trình biên dịch lên cho mọi cảnh báo trong toàn bộ dự án/tập tin!)Vô hiệu hóa cảnh báo không tìm thấy phương thức không tìm thấy

Trả lời

1

Báo cáo chuyển đổi của bạn không thực sự tùy ý, chúng chỉ có thể có độ dài tùy ý. Đối với một số lượng lớn các độ dài, bạn có thể đi trước và khai báo chúng vì lợi ích của trình biên dịch (và sau đó bạn sẽ nhận được kiểm tra lỗi, mà bạn sẽ không nếu bạn vừa tắt cảnh báo). Ví dụ:

typedef void (^ObjCCaseBlock)(); 

@interface NSObject() 
- (id)switch; 
- (void)case:(NSString*)a :(ObjCCaseBlock)b; 
- (void)case:(NSString*)a :(ObjCCaseBlock)b case:(NSString*)a :(ObjCCaseBlock)b; 
- (void)case:(NSString*)a :(ObjCCaseBlock)b case:(NSString*)a :(ObjCCaseBlock)b case:(NSString*)a :(ObjCCaseBlock)b; 
@end 

Lặp lại nhiều cấp độ có khả năng xảy ra (và bạn có thể thêm các cấp nếu nó gặp sự cố). Đó là một chút tẻ nhạt, nhưng không khó.

+0

Điều này không hoạt động với 'mặc định' mà không bị buộc phải ở cuối ... – JustSid

+0

Hoặc tốt, nó hoạt động, nhưng nó trở nên lớn và khó chịu trong hầu như không có thời gian. – JustSid

+0

Sau khi googling xung quanh một chút, nó dường như là lựa chọn duy nhất (nộp một radar cho '# pragma' mặc dù) ... Tôi không thực sự hài lòng với giải pháp nhưng tôi đoán nó không phải làm các trick cho hiện nay. – JustSid