我有阵列:
NSArray *array = [NSArray arrayWithObjects:@"One",@"Second",@"Third", nil];
我想在控制台中获取此代码结果:
[One]
background = 0,
[Second]
background = 1,
[Third]
background = 2,
我尝试使用此代码执行此操作:
Int n = 0;
for (; n < 3; n++)
{
NSArray *array = [NSArray arrayWithObjects:@"One",@"Second",@"Third", nil];
NSString *stringFromArray = [array componentsJoinedByString:@"], background = %i ["];
NSLog (@"%@",stringFromArray);
}
如何解决问题?
答案 0 :(得分:3)
如果您想使用该内容构建字符串,而不是仅将其显示到控制台,请使用以下代码:
NSArray *array = [NSArray arrayWithObjects:@"One",@"Second",@"Third", nil];
NSMutableString *output = [NSMutableString new];
for (int index = 0; index < array.count; index++) {
[output appendFormat: @"[%@]\nbackground = %d,\n\n", array[index], index];
}
要在没有NSLog标头的情况下显示它,请将其转换为字符串并使用printf()
:
const char *cString = [output cStringUsingEncoding: NSASCIIStringEncoding];
printf("%s", cString);
Objective-C的字符串处理通常比C语言更好,因此使用NSString对象进行字符串处理然后在最后转换为C字符串并不罕见。
如果你在一个大程序中做了很多,你可以编写一个printString()
函数,它将NSString作为输入,将其转换为C字符串,并用printf()
答案 1 :(得分:1)
这个怎么样?
for (NSString *each in array) {
NSLog(@"[%@]\nbackground = %d", each, [array indexOfObject:each]);
}