gpt4 book ai didi

objective-c - 在我的 UITableView 中滚动时,单元格正在消失

转载 作者:行者123 更新时间:2023-11-28 19:17:30 25 4
gpt4 key购买 nike

这是我的示例 twitter 程序,它可以工作,但有几个错误如果我向上或向下滚动顶部和底部的单元格有时会消失,我会收到一条错误消息:

BAD ACCESS CODE 这发生在这一行

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

请指教

enter image description here

#import "TableViewViewController.h"

@interface TableViewViewController ()

@end

@implementation TableViewViewController

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
NSLog(@"tweets array count : %d", tweets.count);
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];
}

NSLog(@"ROW : %d", indexPath.row);

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

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

- (void)viewDidLoad
{
[super viewDidLoad];
[self fetchTweets];
}

- (void)fetchTweets
{

NSString *twitterURL = [NSString stringWithFormat:@"https://api.twitter.com/1/statuses/public_timeline.json"];
NSURL *fullURL = [NSURL URLWithString:twitterURL];

NSError *error = nil;
NSData *dataURL = [NSData dataWithContentsOfURL:fullURL options:0 error:&error];

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

.....

@end

最佳答案

我发现这个函数有问题:

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
NSLog(@"tweets array count : %d", tweets.count);
//return tweets.count;
return 11; //default returns 20 but only shows 10 indexpath.Row so 11
}

您可能不应该只返回 11 —— 如果 tweets 会怎么样?有不同的长度? TableView 将尝试获取数组中不存在的索引处的单元格。尝试返回 tweets.count相反。

进一步详细说明:tableView:numberOfRowsInSection: 的目的方法不是告诉 iOS 屏幕上有多少行,而是整个 tableView 中有多少行。 .这包括未显示在屏幕上的单元格。

关于objective-c - 在我的 UITableView 中滚动时,单元格正在消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11231705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com