使用多个JSON对象设置单元格的文本

时间:2013-04-25 18:53:33

标签: objective-c string cocoa-touch nsstring

我有一个简单的Web服务,将一些数据传递到表视图中,并且工作正常。

这是我目前的代码:

[[cell detailTextLabel] setText:[item objectForKey:@"Ball 1"]];

正如我所说,这完美无缺,并以球号显示,例如: “1”,取自网络服务。

我想要做的是让它显示,例如“1& 3”。

查看其他一些代码我认为可能是:

[[cell detailTextLabel] setText:[item objectForKey:@"Ball 1"]item objectForKey:@"Ball 2"]];

我是Objective-C的新手,我正在做一些教程,我正在努力扩展它们。搜索某些内容的答案有点困难,因为我不确定术语。

3 个答案:

答案 0 :(得分:2)

使用字符串连接,例如stringWithFormat

NSString *concated = [NSString stringWithFormat:@"%@ & %@", [item objectForKey:@"Ball 1"], [item objectForKey:@"Ball 3"]];

现在将此字符串设置为label:

[[cell detailTextLabel] setText:concated];

答案 1 :(得分:1)

我不确定您是否要设置项目中字符串的文字,或者只是想打印“1& 3”

让我们假装它是第一个。您可以按

设置文字
cell.detailTextLabel.text = [[NSString stringWithFormat:@"%@ %@",  [item objectForKey:@"Ball 1"], [item objectForKey:@"Ball 3"]];

NSString stringWithFormat:将构造一个字符串并将%@替换为您提供的NSObject,因为如果你放一个int或一个浮点数就会崩溃。您需要使用正确的标识符来正确写入,%d表示int,%f表示浮动,例如。

如果您只是想在文本中写入“1& 3”,那就是这个。

cell.detailTextLabel.text = @"1 & 3";

答案 2 :(得分:1)

您的单元格的text属性需要使用一个字符串设置,但您有两个要使用的字符串。你需要结合这些字符串。

Cocoa Touch中的字符串对象是NSString,它有一些方法可以帮到你。在这种情况下,最好的是stringWithFormat:。这需要一个“格式字符串”,它描述了你想要的输出,以及插入到结果中的其他参数。

在这种情况下,您的格式字符串将为:@"%@ & %@"。这是一个包含两个format specifiers的字符串文字 - 两个%@。每个说明符指示应插入到字符串中的以下参数的类型 - 在本例中为任何类型的对象(与intfloat相对)。字符串中的&没有特殊含义 - 它将按原样显示在结果中。

要获得结果,请调用stringWithFormat:,传递格式字符串和要插入的两个对象:

NSString * result = [NSString stringWithFormat:@"%@ & %@", [item objectForKey:@"Ball 1"], [item objectForKey:@"Ball 2"]]; 

现在您有一个字符串,可以将其分配给您的单元格text

[[cell detailTextLabel] setText:result];