是的是的。真可惜我试图在UIView中绘制,我的代码是:
NSString *str;
if(kmObj.metal!=@"" && kmObj.metalName2!=@"" && kmObj.metalname3!=@"")
{
str=[NSString stringWithFormat:@"%@ + %@ + %@",kmObj.metal,kmObj.metalName2,kmObj.metalname3];
}
if(kmObj.metal!=@"" && kmObj.metalName2!=@"" && kmObj.metalname3==@"")
{
str=[NSString stringWithFormat:@"%@ + %@",kmObj.metal,kmObj.metalName2];
}
if(kmObj.metal!=@"" && kmObj.metalName2==@"" && kmObj.metalname3==@"")
{
str=[NSString stringWithFormat:@"%@",kmObj.metal];
}
[str drawAtPoint:CGPointMake(10.0,234.0)
forWidth:200
withFont:[UIFont systemFontOfSize:20.0]
minFontSize:20.0
actualFontSize:NULL
lineBreakMode:UILineBreakModeTailTruncation
baselineAdjustment:UIBaselineAdjustmentAlignBaselines];
因此,此代码假定检查对象是否包含多个金属名称记录。如果是这样,那么它就必须格式化字符串以形成:Au + Ag + Cu ...我的问题是在输出绘图中,我无法摆脱不需要它们的+号。我的if语句中有问题吗?
最佳答案
代替if (string != @"")
,使用![string isEqualToString:@""]
或([string length] > 0)
。您需要确保执行的是值比较,而不是指针比较。
无论如何,我会这样写代码:
NSString *outputString = @"";
if ([firstString length] > 0) {
outputString = [outputString stringByAppendingString:firstString];
}
if ([secondString length] > 0) {
outputString = [outputString stringByAppendingFormat:@" + %@", secondString];
}
if ([thirdString length] > 0) {
outputString = [outputString stringByAppendingFormat:@" + %@", thirdString];
}
使用此技术,您可以单独检查每个字符串,并且仅在知道另一个有效字符串会跟随它时才包含加号。
关于ios - 在drawRect中的if语句问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9386896/