使用“isEqualToString”设置标签文本

时间:2013-08-26 11:28:42

标签: ios objective-c nsstring

我正在尝试在parse.com上使用字符串来设置UILabel中的文本。在Parse上我有一个名为“isItemOnSpecial”的字符串列,如果该项目处于特殊状态,我将其设置为yes。如果字符串设置为yes,那么我希望UILabel显示来自specialPrice列的字符串我希望隐藏UILabel。这是我的代码:

// This is where I am setting up my tableViewCell//

NSString *itemOnSpecial = [object objectForKey:@"isItemOnSpecial"];

if ([itemOnSpecial isEqualToString:@"yes"]) {
    UILabel *specialLabel = (UILabel*) [cell viewWithTag:5];
    specialLabel.text = [object objectForKey:@"specialPrice"];
} else {
    UILabel *specialLabel = (UILabel*) [cell viewWithTag:5];
    [specialLabel setHidden:true];
}

当我使用此代码运行应用程序时,UILabel始终设置为隐藏。 对此有任何帮助将非常感谢它长期困扰我。

感谢您的时间。

2 个答案:

答案 0 :(得分:4)

我看到的最直接的问题是看起来你正在使用这个代码用于UITableViewCell,或类似的情况,在这种情况下你需要确保取消隐藏前一个单元格负载可能隐藏的标签。例如:

NSString *itemOnSpecial = [object objectForKey:@"isItemOnSpecial"];

if ([itemOnSpecial caseInsensitiveCompare:@"yes"] == NSOrderedSame) {
    UILabel *specialLabel = (UILabel*) [cell viewWithTag:5];
    specialLabel.text = [object objectForKey:@"specialPrice"];
    [specialLabel setHidden:NO]; // Notice this line
}else{
    UILabel *specialLabel = (UILabel*) [cell viewWithTag:5];
    [specialLabel setHidden:YES];
}

答案 1 :(得分:0)

试试这个::

if( [@"Some String" caseInsensitiveCompare:@"some string"] == NSOrderedSame ) {
  // strings are equal except for possibly case
}

或者这个:

[someString compare:otherString options:NSCaseInsensitiveSearch];

希望它能帮助!!