23
当我使用字符串格式时,我可以多次访问一个参数而不再传递一次吗?“NSString stringWithFormat:” - 多次访问相同的参数?
例子:
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];
有没有不用写再次访问的第一个参数的方式”,参数1" 再次?
注意格式字符串,你需要参考的参数列表中提供的所有参数。例如。下面的代码在运行时会导致一个bug,因为格式化字符串中第一个位置参数是未使用的:'[NSString stringWithFormat:@“%2 $ @”,@“bar”,@“foo”]' - 请参阅http: //stackoverflow.com/questions/2946649/nsstring-stringwithformat-swizzled-to-allow-missing-format-numbered-args – mrb 2012-07-12 14:44:47
@mrb对。这是C中可变参数('...')实现的副作用(不是bug)。如果你没有告诉格式化函数什么类型的参数(通过引用它至少一次),没有办法在它之后正确地找到它们。 – hamstergene 2012-07-12 14:49:05
我用predicateWithFormat尝试它,但不工作。如何使用谓词的参数位置? – Add080bbA 2015-07-14 16:28:14