0

parse.com で文字列を使用して、UILabel 内のテキストを設定しようとしています。解析では、「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 は常に非表示に設定されます。これについての助けは、長い間私を悩ませてきたことに非常に感謝しています。

御時間ありがとうございます。

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 に答える