ios - 在drawRect中的if语句问题

标签 ios cocoa-touch if-statement

是的是的。真可惜我试图在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/

相关文章:

objective-c - nspredicate 转义 url

ios - 这些是我的泄密吗?

iphone - 为脉动的 UILabel 制作动画?

iphone - iPhone中图像的加密和解密算法?

iphone - EXC_BAD_ACCESS 与 Objective-C 属性

java - If/Else/提取字符串的一部分

javascript - 通过javascript if else语句在不同的浏览器中显示不同的内容

swift - 为什么我可以使用常量初始化作为 if 条件?

ios - 从 Web 服务有效地解析 CSV 文件(使用 CHSVParser)

已经呈现的 iOS 8 Xcode 6.1 Swift prepareForSegue Controller (空)