Swift 2.0 cho phép kiểm tra tính khả dụng bằng cách sử dụng @available
hoặc #available
, nhưng sự khác biệt giữa việc sử dụng @available
và #available
là gì?Sự khác biệt giữa @available và #available trong swift 2.0
12
A
Trả lời
16
Bạn có thể sử dụng nếu #available
để chạy mã phiên bản cụ thể trong các khối nhỏ, như sau:
if #available(iOS 9, *) {
// use UIStackView for example
} else {
// do something else
}
Nhưng nếu toàn bộ các phương pháp đang tắt giới hạn, Hoặc có lẽ thậm chí toàn bộ lớp học? Swift 2 cũng có các kịch bản này, sử dụng thuộc tính @available
.
@available(iOS 9, *)
func useStackView() {
// use UIStackView for example
}
Thông tin chi tiết: https://www.hackingwithswift.com/new-syntax-swift-2-availability-checking
Các vấn đề liên quan
- 1. Phủ nhận # available statement
- 2. Frama-C Windows Binary Available?
- 3. Sự khác biệt giữa CBUUID và NSUUID trong swift
- 4. Sự khác biệt giữa Generics và AnyObject trong Swift
- 5. sự khác biệt giữa awakeFromNib() và viewDidLoad() trong swift
- 6. Performans & Diagnostics - Not Available Tools trong VS2013 Ultimate
- 7. sự khác biệt giữa HTTP 1.1 và HTTP 2.0
- 8. Sự khác biệt giữa PhantomJS 2.0 và PhantomJS 1.9
- 9. ASP.NET MVC 2.0 - Sự khác biệt giữa RenderPartial và RenderAction
- 10. Góc 2.0 - Sự khác biệt giữa @ViewQuery và @Query
- 11. Sự khác biệt giữa Swift 2 và Linux/OS X
- 12. Sự khác biệt giữa. và #
- 13. Sự khác biệt giữa $ (...) và `...`
- 14. Sự khác biệt giữa = và: =
- 15. Sự khác biệt giữa $ * và $ @
- 16. Sự khác biệt giữa ". +" Và ". +?"
- 17. Sự khác biệt giữa "**/* /" và "** /"?
- 18. Sự khác biệt giữa $ # và $ {# @}
- 19. Sự khác biệt giữa "phần" và "phân khúc" trong NASM
- 20. Sự khác biệt giữa '.' và "." trong java
- 21. Sự khác biệt giữa. và: trong Lua
- 22. sự khác biệt giữa 'và "trong JavaScript?
- 23. Sự khác biệt giữa! và !! trong yaml?
- 24. Sự khác biệt giữa $ {} và $() trong Bash
- 25. Sự khác biệt giữa $ @ và $! trong perl
- 26. Sự khác biệt giữa Sproutcore và Ember
- 27. sự khác biệt giữa function() {}() và function() {}()
- 28. Sự khác biệt giữa Swift 2.0 do-try-catch và các ngoại lệ Java/C++ thông thường là gì
- 29. Sự khác biệt giữa sự khác biệt biểu tượng và sự khác biệt tự động?
- 30. Đặt -moz-sẵn và -webkit-fill-available ở một chiều rộng
Nói tóm lại, '#available()' là một tấm séc thời gian chạy mà trả về một Boolean, và '@available()' là một cách để tạo ra thời gian biên dịch cảnh báo/lỗi nếu mục tiêu của người dùng bên dưới những gì bạn đánh dấu nó và họ không thực hiện kiểm tra '#available()', eh? – nhgrif
@nhgrif "#available() trả về boolean". Lưu ý tôi có thể làm: nếu #available (...) {...} nhưng tôi không thể làm điều gì đó như: if! (# Available (...)) {...} – BangOperator