Ios 将NSMutableArray打印到UITableView中
在我的应用程序中,我有一个带有按钮的tableview。当我按下按钮时,我看到一个alertcontroller,允许我输入数据。然后,将这些数据保存在NSMutableArray中,我的目的是在tableview的单元格中打印其中一个数据。问题是数据采集是正确的,但tableview仍然为空。我不明白为什么,似乎没问题 类别:FeedInfoIos 将NSMutableArray打印到UITableView中,ios,objective-c,uitableview,Ios,Objective C,Uitableview,在我的应用程序中,我有一个带有按钮的tableview。当我按下按钮时,我看到一个alertcontroller,允许我输入数据。然后,将这些数据保存在NSMutableArray中,我的目的是在tableview的单元格中打印其中一个数据。问题是数据采集是正确的,但tableview仍然为空。我不明白为什么,似乎没问题 类别:FeedInfo #import <Foundation/Foundation.h> @interface FeedInfo : NSObject @pro
#import <Foundation/Foundation.h>
@interface FeedInfo : NSObject
@property (nonatomic,strong) NSString *feedURL;
@property (nonatomic,strong) NSString *feedTitle;
@property (nonatomic,strong) NSString *feedCategory;
@end
这里一切正常。问题是在我的tableview的单元格中打印其中一个字段
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [self.tableView dequeueReusableCellWithIdentifier:@"cell"];
FeedInfo *feedToShow = [self.feedArray objectAtIndex:indexPath.row];
cell.textLabel.text = feedToShow.feedTitle;
return cell;
}
创建单元格时出现问题。您的
单元格
对象是nil
使用以下代码获取单元格对象
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];
dequeueReusableCellWithIdentifier:forIndexPath
:较新的dequeue方法保证返回单元格并正确调整其大小,前提是已注册标识符
如果未在xib/情节提要上设置单元标识符
,则
您必须调用registerClass
或Registernb
,才能使用dequeueReusableCellWithIdentifier:forIndexPath:
方法
更新:
未分配数据源数组。在viewDidLoad()中分配feedArray
您是否已将TableViewDatasource
协议分配给控制器?您是否覆盖了numberOfRowsInSection
?@dirtydanee我输入的self.tableView.delegate=self;self.tableView.dataSource=self代码>在viewDidLoad中。至于方法,我写了-(NSInteger)numberOfSectionsInTableView:(UITableView*)tableView{return 1;}
和-(NSInteger)tableView:(UITableView*)tableView numberofrowsinssection:(NSInteger)section{return self.feedArray.count;}
结果相等,空tableView:(你在xib/故事板上添加了单元标识符了吗?是的,我的单元标识符是'cell'@Taprolano你的单元类是什么?你能不能把断点放在单元对象上,检查它是否为nil
我在单元创建后立即插入了这个检查if(cell==nil){NSLog(@“error”);}
并且没有打印任何内容。因此我认为单元格不是零
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell" forIndexPath:indexPath];
- (void)viewDidLoad {
[super viewDidLoad];
self.feedArray = [[NSMutableArray alloc]init];
}