2014-10-08 17 views
6

Gần đây tôi đã gặp phải tuyên bố tăng gấp đôi return (một trong số chúng đã được thêm nhầm) trong dự án của chúng tôi và tự hỏi tại sao compiler không hiển thị cảnh báo cho điều đó ?!Báo cáo trả lại sẽ không bao giờ được thực hiện cảnh báo

Ok, tôi đã thêm -Wunreachable-code vào các cờ cảnh báo khác, nhưng vẫn không có may mắn.

Got cảnh báo - với một mã số để thực hiện sau khi return tuyên bố:

enter image description here

đã không nhận được cảnh báo nhưng vẫn tuyên bố thứ hai return sẽ không bao giờ được thực thi. enter image description here

Thậm chí nếu tôi thêm một cái gì đó như thế này, vẫn không có cảnh báo

enter image description here

Có thêm cờ cảnh báo cho rằng, hoặc biên dịch là không đủ thông minh?

+2

vì phương thức thoát của bạn trước khi thực thi mã đó –

+0

cho cả hai ví dụ, vì vậy, hãy làm gì? – Injectios

+0

cho cả hai ví dụ phương pháp của bạn không bao giờ thực hiện sau khi trở về –

Trả lời

2

Bắt tốt!

-Wunreachable-code không báo cáo cảnh báo và không có cờ cảnh báo khác sẽ thực hiện.
Ngay cả Máy phân tích tĩnh cũng không bị lỗi này!

(Thử nghiệm với XCode 6.1 GM 2)

+0

nhưng tất cả các cảnh báo sẽ biến mất ... Tôi đoán nó không phù hợp với chủ đề. – Vlad

+0

Tại sao tất cả cảnh báo sẽ biến mất? '-Wunreachable-code' cho phép ** ** cảnh báo hơn, mặc dù nó sẽ không bắt được cảnh báo được đề cập bởi chủ đề khởi động. – fluidsonic

+0

Tôi có nghĩa là cảnh báo về "mã chết" khác. – Vlad

-1

Hãy thử này ...

-(NSString*) makeSomeStringForMe { 

    NSString *someString = @"some string"; 

    return someString; 

} 
+0

Bạn có thể chỉnh sửa câu hỏi của mình để thêm giải thích về mã này và cách nó giải quyết câu hỏi không? – Kenster

0

Sử dụng -Wno-unreachable-code cho tập tin của bạn trong giai đoạn xây dựng.

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