Có ai biết làm thế nào tôi có thể lấy một biến môi trường trong Swift?Đề cập đến các biến môi trường trong Swift
Trả lời
Có thể thực hiện được. Sử dụng ProcessInfo
cho điều đó.
đơn giản ví dụ:
let dic = ProcessInfo.processInfo.environment
if dic["VAR"] != nil {
}
Ok, mà làm việc trên ứng dụng đang chạy, bạn làm gì với Kiểm tra giao diện người dùng? – Maetschl
Cùng với sự NSProcessInfo
phương pháp dựa trên đề cập bởi Oleg, bạn có thể truy cập các biến môi trường bằng cách sử dụng tiêu chuẩn C getenv
chức năng, như vậy:
Swift 2.x :
func getEnvironmentVar(name: String) -> String? {
let rawValue = getenv(name)
guard rawValue != nil else { return nil }
return String(UTF8String: rawValue)
}
Swift 3.0:
func getEnvironmentVar(_ name: String) -> String? {
guard let rawValue = getenv(name) else { return nil }
return String(utf8String: rawValue)
}
Nó cũng có thể thiết biến môi trường bằng cách sử dụng setenv
chức năng:
func setEnvironmentVar(name: String, value: String, overwrite: Bool) {
setenv(name, value, overwrite ? 1 : 0)
}
Lý do tôi đề cập đến khả năng thiết lập các biến là bởi vì đó là cách duy nhất tôi biết để thiết lập các biến khi làm việc trong Xcode Playground.
Gần đây tôi đã muốn thấy một dấu backtrace cho một lỗi lạ CGContext
tôi đã nhận được khi làm việc với chế độ xem "trực tiếp" trong sân chơi. Theo mặc định, các vết lùi không được hiển thị trong giao diện điều khiển, vì vậy tôi đã phải đặt biến CG_CONTEXT_SHOW_BACKTRACE
môi trường để xem những gì đã lên:
setenv("CG_CONTEXT_SHOW_BACKTRACE", "1", 1)
Sau đó, nó là thuận buồm xuôi gió. Vâng, khác với lỗi CGContext
tôi đã nhận được, nhưng đó là một chủ đề cho một ngày khác.
Hy vọng điều này sẽ hữu ích!
P.S. Các chức năng trên yêu cầu phải nhập mô-đun Darwin
. Foundation
tự động nhập Darwin
, nhưng tôi nghĩ tôi nên đề cập đến nó.
Swift 3 trở lên:
import Foundation
if let value = ProcessInfo.processInfo.environment["key"] {
...
}
Từ Swift 3 NSProcessInfo
đã được đổi tên thành ProcessInfo
. Và phương pháp processInfo()
đã được thay thế bằng thuộc tính processInfo
.
import Foundation
for (key, value) in ProcessInfo.processInfo.environment {
print("\(key): \(value)")
}
- 1. Biến môi trường TypeScript
- 2. Truy cập biến môi trường AppKernel trong symfony 2
- 3. Vấn đề với umlauts trong python appdata biến môi trường
- 4. js góc đọc các biến môi trường
- 5. Các biến môi trường thể hiện
- 6. MSBuild các biến môi trường bắt buộc
- 7. Tiếp cận biến môi trường trong package.json
- 8. Biến môi trường Ruby
- 9. Jenkins - Cách truy cập BUILD_NUMBER biến môi trường
- 10. Biến môi trường truy cập đường ống Jenkins
- 11. Cách lấy các biến môi trường từ bên trong gvim
- 12. Python: Xuất các biến môi trường trong subprocess.Popen (..)
- 13. Biến môi trường Javascript
- 14. Biến môi trường đơn điệu
- 15. Tham chiếu Biến môi trường trong web.xml
- 16. UNIX, nhận biến môi trường
- 17. Biến môi trường Node.js NODE_PATH
- 18. cách truy cập biến môi trường Jenkins bằng DSL?
- 19. Không thể cập nhật biến môi trường "PATH" bằng WIX
- 20. Hoán đổi các biến trong môi trường đa luồng
- 21. Đề cập đến biến CMAKE từ mã
- 22. biến môi trường trong Visual Studio 2013
- 23. Khóa SSH trong biến môi trường
- 24. Biến môi trường truy cập từ java servlet
- 25. Biến môi trường trong Đường ống Jenkins
- 26. đọc biến môi trường bash
- 27. Biến môi trường NodeJS trong Grunt
- 28. Sử dụng các biến môi trường vùng chứa được liên kết trong môi trường ứng dụng?
- 29. Xem các biến môi trường cửa sổ trong Cygwin
- 30. Biến môi trường trong Python trên Linux
Những bài báo với câu trả lời hữu ích - https://medium.com/@danielgalasko/change-your-api-endpoint-environment-using-xcode-configurations-in-swift-c1ad2722200e –