0

好吧,这就是我最近几天一直在摸索的东西。我为我的表格视图创建了一个自定义单元格。我为这个单元创建了一个单独的类(customCell.h),并在 Xcode 中将它们链接在一起。自定义单元格有四个 UIlabels,我在自定义单元格的 .h 文件中声明并通过情节提要链接到自定义单元格。

我已将 customCell.h 头文件导入到我的表格视图控制器的 .h 文件中

我正在尝试在 Twitter 上进行搜索,然后使用各种推文的详细信息填充表格视图和自定义单元格。问题是我不知道如何将推文的结果链接到我的自定义单元格中的 4 个 UIlabel 插座。

当我在我的表格视图实现文件中声明自定义单元格的一些出口时(即使我已经导入了自定义单元格的 .h 文件)xcode 说它无法识别名称

我已经尽可能地复制了下面的详细代码。任何帮助将非常感激。提前致谢

- (void)fetchTweets
{
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        NSData* data = [NSData dataWithContentsOfURL:
                        [NSURL URLWithString: @"THIS IS WHERE MY TWITTER SEARCH STRING WILL GO.json"]];

        NSError* error;

        tweets = [NSJSONSerialization JSONObjectWithData:data
                                                 options:kNilOptions
                                                   error:&error];

        dispatch_async(dispatch_get_main_queue(), ^{
            [self.tableView reloadData];
        });
    });
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return tweets.count;
}

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

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }

    NSDictionary *tweet = [tweets objectAtIndex:indexPath.row];
    NSString *text = [tweet objectForKey:@"text"];
    NSString *name = [[tweet objectForKey:@"user"] objectForKey:@"name"];
    NSArray *arrayForCustomcell = [tweet componentsSeparatedByString:@":"];

    cell.textLabel.text = text;
    cell.detailTextLabel.text = [NSString stringWithFormat:@"by %@", name];



    return cell;
}
4

1 回答 1

1

您正在创建 UITableViewCell 的一个实例,它是 tableview 单元格的默认类。在您的情况下,您必须创建 customCell 类的实例(它扩展了 UITableViewCell 类)。您必须在 cellForRowAtIndexPath 方法中执行此操作:

static NSString *CellIdentifier = @"TweetCell";

customCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if ( cell == nil )
{
    cell = [[customCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}

// Get the tweet
NSDictionary *tweet = [tweets objectAtIndex:indexPath.row];

我希望这对你有所帮助!

史蒂芬。

于 2012-05-24T06:41:49.017 回答