0

我正在尝试使用 parse.com 上的字符串来设置 UILabel 中的文本。在 Parse 中,我有一个名为“isItemOnSpecial”的字符串列,如果该项目处于特殊状态,我会将其设置为“是”。如果字符串设置为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 始终设置为隐藏。对此的任何帮助将不胜感激,它一直困扰着我很长时间。

谢谢你的时间。

4

2 回答 2

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];
}
于 2013-08-26T11:34:37.630 回答
0

尝试这个::

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

或这个:

[someString compare:otherString options:NSCaseInsensitiveSearch];

希望能帮助到你!!

于 2013-08-26T11:37:42.610 回答