gpt4 book ai didi

ios - 创建 collectionViewCell 时出现异常

转载 作者:行者123 更新时间:2023-11-28 20:00:18 27 4
gpt4 key购买 nike

我正在尝试创建一个简单的 View :一个占屏幕 80% 的 tableView,以及一个底部有 4 行的 collectionView。我的 tableView 一切正常,但我的 collectionView 无法正常工作。我总是遇到以下异常:

Terminating app due to uncaught exception 'NSInternalInconsistencyException', 
reason: 'could not dequeue a view of kind: UICollectionElementKindCell with
identifier simpleCollectionCell - must register a nib or a class for the
identifier or connect a prototype cell in a storyboard'.

我一直在查看我的 View Controller :我的 collectionVIew 有 2 个引用导出:数据源和委托(delegate)。所以没关系。我正在使用“withReuseIdentifier”方法,所以我不必在 Nib 中声明标识符。我一直在尝试为 collectionView 创建一个属性,但它没有任何改变。

所以我真的不明白我错过了什么......

.h :

#import <UIKit/UIKit.h>

@interface MainViewController : UIViewController <UITableViewDelegate,
UITableViewDataSource, UICollectionViewDelegate, UICollectionViewDataSource>
@end

.m :

#import "MainViewController.h"

@interface MainViewController ()

@end

@implementation MainViewController {
NSArray *recipes;
NSArray *images; }

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self) {
// Custom initialization
}
return self; }

- (void)viewDidLoad {
[super viewDidLoad];
recipes = [NSArray arrayWithObjects:@"Label1", @"Label2", @"Label3", @"Label4", @"Label5", @"Label6", @"Label7", @"Label8", @"Label9", @"Label10", @"Label11", @"Label12", @"Label13", @"Label14", @"Label15", nil];

images = [NSArray arrayWithObjects:@"img1", @"img2", @"img3", @"img4", nil];
// Do any additional setup after loading the view. }

- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated. }

#pragma mark TableView methods

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [recipes count]; }

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

UITableViewCell *cell = [tableView
dequeueReusableCellWithIdentifier:simpleTableIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:simpleTableIdentifier];
}
cell.textLabel.text = [recipes objectAtIndex:indexPath.row];
return cell;
}

#pragma mark CollectionView methods

- (NSInteger) numberOfSectionsInCollectionView:(UICollectionView *)collectionView {
return 1;
}

- (NSInteger)collectionView:(UICollectionView *)collectionView
numberOfItemsInSection: (NSInteger)section {
return [images count];
}

- (UICollectionViewCell *) collectionView:(UICollectionView *)collectionView
cellForItemAtIndexPath:(NSIndexPath *)indexPath {

UICollectionViewCell *cell = [collectionView
dequeueReusableCellWithReuseIdentifier:@"cell" forIndexPath:indexPath];

return cell;
}

@end

提前致谢!

最佳答案

确保您已在界面构建器中为 Collection View 单元设置了正确的自定义类(如果有)以及单元标识符。检查此屏幕截图。

enter image description here

这是自定义类,下面的是单元标识符。

enter image description here

您的情况下的标识符是“cell”。确保你有这些设置。他们可能是这里的问题。此外,您的 CollectionViewCell 的类名和 cellForItemAtIndexPath 中的类名应该相同。

希望这对您有所帮助。

关于ios - 创建 collectionViewCell 时出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24487823/

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