-1

New to objective c. I am using NSArray to populate my UITableView. is there a way to remove the blank from the array and from the cell.textLabel.text. This is what i have done:

- (void)viewDidLoad
{
    [super viewDidLoad];
    alTableView.delegate = self;
    alTableView.dataSource = self;
    NSArray *BusRoute = alightDesc;
    int i;
    int count = [BusRoute count];
    for (i = 0; i < count; i++)
    {  
        NSDictionary *STEPS = [dic valueForKey:@"STEPS"];            
        alDescArray = [[STEPS valueForKey:@"AlightDesc"] retain];
        boardDescArray = [[STEPS valueForKey:@"BoardDesc"] retain];   
        NSLog(@"boardDescArray = %@", boardDescArray);     

        serviceID = [[STEPS valueForKey:@"ServiceID"] retain];
    }
}

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }
    cell.textLabel.font = [UIFont systemFontOfSize:14]; //Change this value to adjust size
    cell.textLabel.numberOfLines = 10;
    cell.textLabel.text = [NSString stringWithFormat:@"Walk to and board at %@\nTake Bus Service = %@\nAlight Destination = %@",[boardDescArray objectAtIndex:indexPath.row], [serviceID objectAtIndex:indexPath.row], [alDescArray objectAtIndex:indexPath.row]];
    NSLog(@"cell = %@", cell.textLabel.text);
    return cell;
}

At the second cell print out, Walk to and board at (Null) is there a way to remove that sentence from the table?

Results:

alDescArray = (
"OPP",
"OPP",
"OPP"
)

boardDescArray = (
"BLK",
"AFT",
""
)

serviceID = (
66,
43,
72
)

cell = Walk to and board at BLK 7
       Take Bus Service = 11
       Alight Destination = BLK 11
cell = Walk to and board at 
       Take Bus Service = 3
       Alight Destination = BLK 16
cell = Walk to and board at BLK 38 
       Take Bus Service = 9
       Alight Destination = AA

Update Ans

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
cell.textLabel.font = [UIFont systemFontOfSize:14]; //Change this value to adjust size
cell.textLabel.numberOfLines = 10;

NSString *boardDesc = [boardDescArray objectAtIndex:indexPath.row];
NSString *serviceId = [serviceID objectAtIndex:indexPath.row];
NSString *alDesc = [alDescArray objectAtIndex:indexPath.row];
NSLog(@"serviceId - %@",serviceId);

NSString *resultString2 = [NSString stringWithString:@""];

//make a check before making the string
if ([boardDesc length]>0) {
    resultString2 =[resultString2 stringByAppendingFormat:@"Walk to and board at %@,",boardDesc];
}

if ([serviceId length]>0) {
    resultString2 =[resultString2 stringByAppendingFormat:@"Take Bus Service %@: ",serviceId];
}

if ([alDesc length]>0) {
    resultString2 =[resultString2 stringByAppendingFormat:@"Alight Destination %@: ",alDesc];
}

//string that doesnot print null values
NSLog(@"resultString2 - %@",resultString2);
cell.textLabel.text = resultString2;
NSLog(@"cell = %@", cell.textLabel.text);
return cell;
}
sihao
  • 273
  • 2
  • 5
  • 19
  • 1
    that's not null, that's an empty string. –  Aug 13 '12 at 05:32
  • check with isEqualtoString or [<#(NSString *)#> caseInsensitiveCompare:<#(NSString *)#>] to check before adding to tableview. – Lalith B Aug 13 '12 at 05:44
  • for removing items from tableview and doing array manipulations use NSMutableArray where you can add/remove objects after allocation using [array addObject:@"somethig"]; refer to this document for more information. https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSMutableArray_Class/Reference/Reference.html – Lalith B Aug 13 '12 at 05:46

2 Answers2

2
NSString *myName = [NSString stringWithString:@"Mangesh"];
NSString *myAge = [NSString stringWithString:@""];
NSString *myProfession = [NSString stringWithString:@"Developer"];
//just for example you have three string with above values 
//and you want to print Hi, My Name is ABC, I am 22 year old and my Profession is Developer

//string that prints null values     
NSString *resultString1 = [NSString stringWithFormat:@"Hi, My Name is %@, I am %@ year old and my profession is %@",myName,myAge,myProfession];

NSLog(@"resultString1 - %@",resultString1);
//output: resultString1 - Hi, My Name is Mangesh, I am  year old and my profession is Developer

NSString *resultString2 = [NSString stringWithString:@"Hi,"];

//make a check before making the string
if ([myName length]>0) {
    resultString2 =[resultString2 stringByAppendingFormat:@"My Name is %@,",myName];
}

if ([myAge length]>0) {
    resultString2 =[resultString2 stringByAppendingFormat:@"I am %@ year old and",myAge];
}

if ([myProfession length]>0) {
    resultString2 =[resultString2 stringByAppendingFormat:@" my profession is %@",myProfession];
}

//string that doesnot print null values
NSLog(@"resultString2 - %@",resultString2);
//output:-  resultString2 - Hi,My Name is Mangesh, my profession is Developer
mangesh
  • 574
  • 4
  • 16
0
NSString *board = [boardDescArray objectAtIndex:indexPath.row];
NSString *firstline = [board length] ? @"Walk to and board at" : @"";

cell.textLabel.text = [NSString stringWithFormat:@"%@%@\nTake Bus Service =
%@\nAlight Destination = %@", firstline, board, [serviceID
objectAtIndex:indexPath.row], [alDescArray objectAtIndex:indexPath.row]];