2012-05-03 4 views
0

私は2つのdateLabelsを持つカスタムTableViewCellを持っています。何もcoreDataに保存されていない場合、私のdateLabelはサンプル日付を選択する必要があります。しかし、日付が設定されているとき、私はラベルにそれを表示したい。 次のコードで試してみましたが、正しく動作しません。カスタムUITableViewCelのラベルが空であるかどうかを比較する方法は?

お願いします。ここ

は私のコードです:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    static NSString *CellIdentifier = @"produktCell"; 


    ProduktTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 

    if (cell == nil) { 
     cell = [[ProduktTableViewCell alloc] initWithFrame:CGRectZero]; 
    } 
    NSManagedObject *managedObject = [self.fetchedResultsController objectAtIndexPath:indexPath]; 


    cell.produktnameLabel.text = [managedObject valueForKey:@"produktname"]; 
    NSLog(@"%@",cell.vonDatumLabel.text); 

    if ([cell.vonDatumLabel.text length] > 1){ 
     cell.vonDatumLabel.text = [managedObject valueForKey:@"vondatum"]; 
     cell.bisDatumLabel.text = [managedObject valueForKey:@"bisdatum"]; 

    }else { 
     cell.vonDatumLabel.text = dateString; 
     cell.bisDatumLabel.text = dateString1; 
    } 



     cell.datumButton.tag = indexPath.row; 
    cell.warenkorbButton.tag = indexPath.row; 
    cell.menge.tag = indexPath.row + 437812; 
    cell.mengeLabel.text = [managedObject valueForKey:@"mengelabel"]; 




    NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; 
    NSLocale *german = [[NSLocale alloc] initWithLocaleIdentifier:@"de_DE"]; 
    [formatter setLocale:german]; 
    [formatter setNumberStyle:NSNumberFormatterCurrencyStyle]; 
    [formatter setMinimumFractionDigits:2]; 
    [formatter setMaximumFractionDigits:2]; 


    NSNumber *firstNumber = [managedObject valueForKey:@"preis"]; 

    cell.preisLabel.text = [formatter stringFromNumber:firstNumber]; 



    return cell; 
} 
+0

簡単な質問:Core Dataからデータを正常に取得していますか? – Peres

+0

labelのisEqualtoStringプロパティで試してください。 – vishiphone

答えて

1
Make if condition like this 

if ([[managedObject valueForKey:@"produktname"] length] > 1){ 
     cell.vonDatumLabel.text = [managedObject valueForKey:@"vondatum"]; 
     cell.bisDatumLabel.text = [managedObject valueForKey:@"bisdatum"]; 

    }else { 
     cell.vonDatumLabel.text = dateString; 
     cell.bisDatumLabel.text = dateString1; 
    } 

Surely this will help ful 
+0

それは速かった。それは動作します、ありがとう! –

+0

もしあなたがこの答えを満たすなら、この答えに投票してください!! – Prakash

0

私はこれがあなたのために働くだろうと思い、これを使用してください。

[cell.vonDatumLabel.text isEqualToString: dateString]; 
    [cell.bisDatumLabel.text isEqualToString: dateString1];