Tất cả lệnh gọi NSLocalizedString của tôi đều không phải là tham số thứ hai, vì tôi không sử dụng bất kỳ nhận xét nào. Nhưng tôi ghét lặp lại bản thân mình. Bây giờ tôi hỏi bản thân mình nếu nó ok để xác định một macro như LSSTRING (str) mà các cuộc gọi NSLocalizedString (str, nil), và nếu như vậy như thế nào?Macro cho NSLocalizedString
5
A
Trả lời
10
Bạn có thể. Thêm macro sau vào tiêu đề được biên dịch trước của bạn. tức là., trong {} ProjectName tập tin -Prefix.pch
#define LSSTRING(str) NSLocalizedString(str, nil)
2
im sử dụng
#define _(format, ...) [[NSBundle mainBundle] localizedStringForKey: [NSString stringWithFormat:@"%@", [NSString stringWithFormat:format, ##__VA_ARGS__]] value:@"" table:nil]
+1
Tại sao' stringWithFormat đầu tiên: '? –
Một vấn đề với phương pháp này là genstrings hy vọng sẽ tìm thấy một chuỗi cho bình luận, và sẽ đưa ra một lỗi như này: 'Mục nhập sai trong tệp ... (dòng = #): Đối số không phải là chuỗi ký tự.' –
Trong Xcode, chỉ cần tìm/thay thế như sau: Tìm: LSSTRING \ ((@ \" \ w + \ ") \) Thay thế: NSLocalizedString \ (\ 1, \ 1 \) – Damon