使用[nsarray arrayWithObjects:]

时间:2012-10-22 14:28:03

标签: objective-c nsarray

我用它来返回

  return [NSArray arrayWithObjects:message, previousNum, nil];

输出时总是输出

 (
     Hello 22
 )

我想知道如何从输出中删除圆括号

如果有人可以提供帮助,我会很感激

感谢你

2 个答案:

答案 0 :(得分:0)

我假设您的输出是使用NSLog(@"%@", theArray)或类似产生的。在这种情况下,NSLog()调用description的{​​{1}}方法,该方法返回表示数组内容的字符串,格式为属性列表

因此括号不是数组的一部分,而是描述输出的一部分。

如果你想要一个不同的输出,你必须自己生成它,例如

NSArray

创建一个字符串,其中所有数组元素都用换行符分隔。

ADDED:属性列表是Cocoa和Core Foundation用作存储,组织和访问标准数据类型的便捷方式的结构化数据表示。 NSString *str = [theArray componentsJoinedByString:@"\n"]; 的{​​{1}}方法将数组括在括号中,并且所有元素都以逗号(和换行符)分隔。 Old-Style ASCII Property Lists

中描述了此格式

有关属性列表的详细信息,请参阅Property List Programming Guide

答案 1 :(得分:0)

我无法确定,但看起来你需要帮助将NSArray变成NSString。

当使用NSLog(@"%@", array)(或其他此类格式化方法)输出NSArray时,从NSArray到NSString的这种转换是隐式完成的。 NSLog调用[array description]array转换为NSString。

您可以创建自己的方法将NSArray转换为NSString,也可以使用-componentsJoinedByString:之类的方法。将数组放在变量array中:

NSLog(@"%@", [array componentsJoinedByString:@", "];

将打印Hello, 22

NSLog(@"%@", [array componentsJoinedByString:@" "];

将打印Hello 22

NSLog(@"%@", [array componentsJoinedByString:@""];

将打印Hello22

相关问题