2010-04-29 69 views
13

我不知道我在这里失踪。我试图使用[NSString stringWithFormat]函数连接字符串。这就是我正在做的。NSString stringWithFormat

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

这里的问题是它总是只打印一个变量。说如果在类别中有“运动”和在登录用户中有“Leo”,它将打印“在运动中”并跳过剩余的文本。它应该打印“由狮子座运动”。

+0

哪里是为类声明的结果吗?确保它是一个NSString *而不是别的。 – lucius 2010-04-29 19:40:06

回答

15

user一个UILabel?确保您的文本不包裹或被裁剪。尝试使UILabel变大。

0

请告诉我点这个第一行代码?这似乎与第三条线无关?

你肯定100%,这两个类别和LOGONUSER在代码中填入?也许把一个NSLog语句放在user.text =行之后,并确保它们具有你期望的值,因为你的第三行看起来很好。

编辑

我会尝试改变

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

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

,看看是否能输出In category by logonUser。因为它确实对我来说是正确的。

+0

对不起这个错误。类别声明如下。我不小心复制了错误的行。 NSString * category = [row objectForKey:@“category”]; 是的,我已经试过NSLog,他们是填充。任何想法? – Leo 2010-04-29 20:04:24

1

的代码看起来是正确的:

以任何机会是U凑了类变量回车或多余的空白?如果是小标签,则可能无法显示完整的字符串。尝试交换第三行中的两个变量并查看输出结果。

我百思不得其解,即使是“通过”时的输出不见了。我有一种感觉,即类别变量的值掩盖了文本。

+0

您的回答涵盖了线程启动器遇到的所有问题。我不知道为什么你的答案没有标记为正确的答案或至少upvoted ... – winklerrr 2015-11-23 06:46:11

5

你需要尝试:

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

要检查的问题!让我知道,在调试器控制台XD

+0

好的建议。我试过NSLog,它正在两行打印。我认为类别有回车。我怎样才能取消回车和周围不必要的空间? 谢谢 – Leo 2010-05-01 10:39:22

+0

对不起,回复迟!您可以使用这个 - > - (NSString *)substringWithRange:(NSRange)aRange 而对于范围,你可以这样做 - > NSRange * myRange = NSRangeMake(x,y); – 2010-05-06 03:54:15

相关问题