大家好,我正在尝试将文本设置为标签。代码如下:

- (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;
}

我检查了一下,currentrow实际上包含了该对象。
这是我从Xcode得到的错误:

2013-09-11 16:04:36.468 ApplicationName [2409:c07] *由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'-[__ NSArrayM objectForKey:]:无法识别的选择器已发送至实例0x7172f80'
*
首先抛出调用堆栈:
(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:终止调用引发异常

我使用valueForKey遇到相同的错误:
txtTitolo.text =[currentrow valueForKey:@"Title"];

这里是:

2013-09-11 16:09:34.478 ApplicationName [2409:c07] *由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'-[__ NSArrayM valueForKey:]:无法识别的选择器已发送至实例0x7172f80'
*
首先抛出调用堆栈:
(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:终止调用引发异常

怎么了谢谢!!

最佳答案

看起来currentrow不是NSDictionary(您假设)。这是一个NSArray

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

这就是为什么您会发生此崩溃。如果这是已解析的JSON响应,请检查JSON的结构。

希望有帮助!

10-07 19:27
查看更多