Question

I am trying to set text to my labels. Here is the code:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    newsDataCell *cell = (newsDataCell*)[tableView dequeueReusableCellWithIdentifier:@"newsData"];
    
    if (cell == nil)
    {
        cell = [[newsDataCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"newsData"];
    }
    
   NSDictionary* currentrow =[self.Items objectAtIndex:indexPath.item];
     NSLog(@"currentrow:%@",currentrow);
    //UIImageView *image = (UIImageView*)[cell viewWithTag:0];
    
    UILabel *txtData = (UILabel*)[cell viewWithTag:1];
    NSString *testo = [currentrow objectForKey:@"Date"];
    [txtData setText:testo];
    
    
    UILabel *txtTitolo = (UILabel*)[cell viewWithTag:2];
    txtTitolo.text =[currentrow valueForKey:@"Title"];

    UILabel *txtDescrizione = (UILabel*)[cell viewWithTag:3];
    txtDescrizione.text = [currentrow valueForKey:@"Descr"];

    return cell;
}

I checked and currentrow actually contains the object. This is the error I get from Xcode:

2013-09-11 16:04:36.468 ApplicationName[2409:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayM objectForKey:]: unrecognized selector sent to instance 0x7172f80' *** First throw call stack: (0x1333012 0x1158e7e 0x13be4bd 0x1322bbc 0x132294e 0xc5f4 0x1578fb 0x1579cf 0x1401bb 0x150b4b 0xed2dd 0x116c6b0 0x265bfc0 0x265033c 0x2650150 0x25ce0bc 0x25cf227 0x25cf8e2 0x12fbafe 0x12fba3d 0x12d97c2 0x12d8f44 0x12d8e1b 0x22757e3 0x2275668 0x9cffc 0x2c2d 0x2b55) libc++abi.dylib: terminate called throwing an exception

I get the same error using valueForKey:

txtTitolo.text =[currentrow valueForKey:@"Title"];

Here it is:

2013-09-11 16:09:34.478 ApplicationName[2409:c07] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSArrayM valueForKey:]: unrecognized selector sent to instance 0x7172f80' *** First throw call stack: (0x1333012 0x1158e7e 0x13be4bd 0x1322bbc 0x132294e 0xc5f4 0x1578fb 0x1579cf 0x1401bb 0x150b4b 0xed2dd 0x116c6b0 0x265bfc0 0x265033c 0x2650150 0x25ce0bc 0x25cf227 0x25cf8e2 0x12fbafe 0x12fba3d 0x12d97c2 0x12d8f44 0x12d8e1b 0x22757e3 0x2275668 0x9cffc 0x2c2d 0x2b55) libc++abi.dylib: terminate called throwing an exception

What is wrong?

Was it helpful?

Solution 2

I did it! I just used "stringWithFormat" and it worked like this:

NSString *testo = [NSString stringWithFormat:@"%@",[currentrow objectForKey:@"Date"]];

Thank you anyway for your answers!

OTHER TIPS

Looks like currentrow is not a NSDictionary (which you are assuming). It is an NSArray.

NSDictionary* currentrow =[self.Items objectAtIndex:indexPath.item];
// Not a dictionary, it is an array.

That is why you are getting this crash. If this is a parsed JSON response, check the structure of JSON.

Hope that helps!

A. This error is not produced by Xcode but by the runtime environment.

B. It means that currentrow is not a dictionary but an array.

C. How did you check it? Where do you create the items and put it in the list?

For me this is worked.

customerBillerFieldsArray = [self.detailItem valueForKey:@"customerBillerFileds"];

Earlier I used customerBillerFieldsArray = [self.detailItem objectForKey:@"customerBillerFileds"];

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top