16

我不知道我在这里错过了什么。我正在尝试使用[NSString stringWithFormat]函数连接字符串。这就是我正在做的事情。

NSString *category = [row objectForKey:@"category"];
NSString *logonUser = [row objectForKey:@"username"];
user.text = [NSString stringWithFormat:@"In %@ by %@", category, logonUser];

这里的问题是它总是只打印一个变量。假设类别中有“体育”,logonUser 中有“狮子座”,它将打印“体育中”并跳过剩余的文本。它应该打印“In Sports by Leo”。

4

4 回答 4

15

userUILabel 吗?确保您的文本没有换行或被剪裁。尝试使 UILabel 更大。

于 2010-04-29T20:48:39.343 回答
6

你需要尝试:

NSLog(@"In %@ by %@", category, logonUser);

检查问题!让我知道调试器控制台上的结果 XD

于 2010-04-29T23:51:42.177 回答
1

代码看起来正确:

您是否有机会在类别变量中获得回车或额外的空格?如果是小标签,它可能不会显示完整的字符串。尝试交换第三行中的两个变量,看看输出是什么。

我很困惑,甚至输出中也缺少“by”。我有一种感觉,类别变量的值正在掩盖文本。

于 2010-04-29T22:54:11.123 回答
0

这段代码的第一行有什么意义?似乎与第 3 行无关?

您是否 100% 确定在代码中同时填充了 category 和 logonUser?也许在 user.text = 行之后放置一个 NSLog 语句,并确保它们具有您期望的值,因为您的第 3 行看起来不错。

编辑

我会尝试改变

user.text = [NSString stringWithFormat:@"In %@ by %@", category, logonUser];

user.text = [NSString stringWithFormat:@"In %@ by %@", @"category", @"logonUser"];

看看是否输出In category by logonUser。因为它在我看来确实是正确的。

于 2010-04-29T19:32:04.080 回答