将Twitter搜索链接到自定义tableview单元格

时间:2012-05-24 06:28:50

标签: twitter uitableview xcode4.2

好吧,这就是过去几天我一直在摸不着头脑的事。我为表视图创建了一个自定义单元格。我为这个单元格创建了一个单独的类(customCell.h),并在Xcode中将它们链接在一起。 自定义单元格有四个UI标签,我已在自定义单元格的.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;
}

1 个答案:

答案 0 :(得分: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];

我希望这能帮到你!

斯特芬。