2016-08-30 25 views
9

Hãy tưởng tượng tôi mark the following method deprecated trong Swift:Xử lý * một số * cảnh báo là lỗi trong Swift?

@available(*, deprecated=1.0) 
func myFunc() { 
    // ... 
} 

Và tôi treat warnings as errors in Swift bằng cách thiết lập OTHER_SWIFT_FLAGS="-warnings-as-errors".

Làm cách nào để làm cho nó hiển thị các thông báo không dùng nữa này như cảnh báo, trong khi vẫn xử lý phần còn lại của cảnh báo dưới dạng lỗi?


Nó có vẻ như GCC had a pretty good solution cho vấn đề này:

-Werror // treat all warnings as errors 
-Wno-error=<warning> // don't treat <warning> as error (e.g. -Wno-error=switch) 
-Werror=<warning> // treat <warning> as error 

Vì vậy, nếu điều này là Objective-C, tôi có thể chỉ cần sử dụng -Werror -Wno-error=deprecated-declarations và nhận được chính xác những gì tôi muốn.

Tương đương với Swift là gì?


Tôi đã thử thêm -Wno-error=deprecated-declarations đến OTHER_SWIFT_FLAGS, nhưng nó có vẻ như nó không có nghĩa là cho Swift, vì vậy nó không hoạt động.

Trả lời

0

Điều này là không thể. Kể từ Swift 4, trình biên dịch Swift không có công tắc để bật/tắt các cảnh báo cụ thể hoặc quảng bá các cảnh báo cụ thể cho các lỗi.

Các nhà phát triển lõi Swift bày tỏ sự miễn cưỡng của họ để thêm một loạt các lá cờ trình biên dịch vào một số dịp trong danh sách gửi thư tiến hóa nhanh chóng. Lý do là họ muốn tránh giữ một "phương ngữ" của Swift để mọi nhà phát triển hoạt động với cùng các tính năng ngôn ngữ, vv. lập trường chính thức hiện tại. Nó chắc chắn có thể là những quy tắc này sẽ được phần nào nới lỏng trong tương lai, nhưng tôi sẽ không đặt cược vào nó.

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