从数组转换为字符串

时间:2017-10-29 10:35:35

标签: ios objective-c debugging

我有阵列:

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);
}

如何解决问题?

2 个答案:

答案 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]);
}