[__NSCFString count]:发送到实例的无法识别的选择器

时间:2013-05-06 04:50:14

标签: ios objective-c uitableview

过去几天我一直在搜索这个问题。

在我的档案中.h我把它放在界面中:

NSMutableArray *newsCount;
@property (nonatomic, retain) NSMutableArray *newsCount;

在我的文件中。我发誓这段代码。

我已经在视图中显示了Will Appear方法:

- (void)viewWillAppear:(BOOL)animated{
self.newsCount = [[NSMutableArray alloc] init];
}

    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
        return [self.newsCount count];
       //    return 5;
    }

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

    // Configure the cell.
    cell.textLabel.text = [NSString stringWithFormat:@"- %@",[[newsCount objectAtIndex: indexPath.row] objectForKey:@"RELATED_CAPTION"]];
    [cell.textLabel setFont:[UIFont fontWithName:@"Helvetica" size:13]];
    cell.textLabel.lineBreakMode = UILineBreakModeWordWrap;
    cell.textLabel.numberOfLines = 2;
    cell.textLabel.textColor = [UIColor grayColor];
    return cell;
    }

2 个答案:

答案 0 :(得分:2)

您如何设置self.newsCount

要么你没有将数组放入self.newsCount,要么(更有可能)你设置“newsCount”而没有retaining

您使用的是ARC吗?如果没有,你应该是。

答案 1 :(得分:1)

如果您正在设置newsCount,就像您在@Kendall的回答评论中提到的那样:

newsCount = [[[GlobalVariable sharedInstance].itemNewsDetail objectAtIndex:i]objectForKey:@"RELATED"];

那么问题可能是因为该对象不是NSMutableArray,而是NSString(__ NSCFString是NSString使用的私有类)

您可能希望通过在我之前提到的行之后添加此行来转储[GlobalVariable sharedInstance].itemNewsDetail的内容:

NSLog(@"itemNewsDetail: %@",[[GlobalVariable sharedInstance].itemNewsDetail objectAtIndex:i]);

并检查密钥@"RELATED" ...

中存储的内容