Trong nhiều tình huống, bạn không thực sự cần biên dịch có điều kiện ; bạn chỉ cần hành vi có điều kiện mà bạn có thể bật và tắt. Đối với điều đó, bạn có thể sử dụng một biến môi trường. Điều này có lợi thế rất lớn mà bạn không thực sự phải biên dịch lại.
Bạn có thể đặt biến môi trường và dễ dàng bật hoặc tắt nó trong trình chỉnh sửa lược đồ:
Bạn có thể truy xuất biến môi trường bằng NSProcessInfo:
let dic = NSProcessInfo.processInfo().environment
if dic["TRIPLE"] != nil {
// ... do secret stuff here ...
}
Đây là một ví dụ thực tế. Ứng dụng của tôi chỉ chạy trên thiết bị, vì nó sử dụng thư viện nhạc không tồn tại trên Trình mô phỏng. Sau đó, làm cách nào để chụp ảnh màn hình trên Trình mô phỏng cho các thiết bị tôi không sở hữu? Nếu không có những ảnh chụp màn hình đó, tôi không thể gửi AppStore.
Tôi cần dữ liệu giả và một cách xử lý khác . Tôi có hai biến môi trường: một biến, khi được bật, sẽ cho ứng dụng tạo dữ liệu giả từ dữ liệu thực trong khi chạy trên thiết bị của tôi; cái khác, khi được bật, sử dụng dữ liệu giả (không phải thư viện nhạc bị thiếu) trong khi chạy trên Trình mô phỏng. Việc bật / tắt từng chế độ đặc biệt đó thật dễ dàng nhờ các hộp kiểm biến môi trường trong trình soạn thảo Scheme. Và phần thưởng là tôi không thể vô tình sử dụng chúng trong bản dựng App Store của mình, vì việc lưu trữ không có biến môi trường.