Khi tôi đang sử dụng định dạng chuỗi, tôi có thể truy cập một tham số nhiều lần mà không cần truyền lại không?"NSString stringWithFormat:" - Truy cập cùng một tham số nhiều lần?
Ví dụ:
NSString *parameter1 = @"1";
NSString *parameter2 = @"2";
NSString *myString;
myString = [NSString stringWithFormat:@"I want to print parameter1 here: %@, parameter2 here: %@ and now access parameter1 again: %@ _without_ passing it again.",parameter1, parameter2, parameter1];
Có cách nào để truy cập vào các thông số đầu tiên một lần nữa mà không cần viết", argument1" một lần nữa?
Lưu ý rằng trong chuỗi định dạng, bạn cần phải tham khảo tất cả các đối số được cung cấp trong danh sách đối số. ví dụ. Đoạn mã sau sẽ gây ra lỗi trong thời gian chạy, vì đối số vị trí đầu tiên không được sử dụng trong chuỗi định dạng: '[NSString stringWithFormat: @"% 2 $ @ ", @" bar ", @" foo "]' - xem http: //stackoverflow.com/questions/2946649/nsstring-stringwithformat-swizzled-to-allow-missing-format-numbered-args – mrb
@mrb Phải. Đó là tác dụng phụ của các đối số biến ('...') trong C (không phải lỗi). Nếu bạn không cho biết chức năng định dạng kiểu đối số có (bằng cách tham chiếu đến nó ít nhất một lần), không có cách nào để định vị chính xác các đối số sau nó. – hamstergene
tôi thử với predicateWithFormat nhưng không hoạt động. làm thế nào có thể sử dụng vị trí đối số cho vị từ? – Add080bbA