You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UICollectionView自定义Cell报错:setValue:forUndefinedKey: 键值编码不兼容

问题描述

在为UICollectionView的自定义Cell绑定图片时,触发以下错误:

[<UICollectionViewCell 0x14fd06a80> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key。

已在界面编辑器中正确关联Cell的IBOutlet,无警告提示,但问题仍存在。

自定义Cell代码:

#import <UIKit/UIKit.h>

NS_ASSUME_NONNULL_BEGIN

@interface CollectionViewCell : UICollectionViewCell
@property (nonatomic, weak) IBOutlet UILabel *maskName3;
@property (nonatomic, weak) IBOutlet UIImageView *maskImage;

@end

NS_ASSUME_NONNULL_END

界面构建器设置截图:
Cell类设置
Cell复用标识设置

解决方案

这个错误本质是系统尝试向不存在的key赋值,结合你的场景,按以下步骤排查:

  • 确认Cell注册/关联的类正确
    若通过代码注册Cell,确保使用自定义的CollectionViewCell类而非默认的UICollectionViewCell,示例代码:

    [self.collectionView registerClass:[CollectionViewCell class] forCellWithReuseIdentifier:@"CollectionViewCell"];
    

    若用Storyboard/XIB创建Cell,重新选中Cell确认Class属性确实设置为CollectionViewCell(XIB缓存可能导致显示与实际不符)。

  • 清理无效的IBOutlet绑定残留
    右键点击自定义Cell的类文件,检查所有关联的IBOutlet,删除多余或无效的绑定;也可打开XIB/Storyboard的源代码(右键文件→Open As→Source Code),搜索相关key(如maskImage),删除重复或无效的绑定节点后重新关联。

  • 核对复用标识一致性
    确保collectionView:cellForItemAtIndexPath:方法中使用的复用标识,与界面编辑器中设置的完全一致(截图中标识为CollectionViewCell),标识不匹配会导致系统创建默认UICollectionViewCell实例,无法识别自定义属性。

  • 清理缓存并重建项目
    执行Product → Clean Build Folder,重启Xcode后重新运行项目,Xcode缓存导致的类信息不匹配问题常能通过此方法解决。

内容的提问来源于stack exchange,提问作者Jobalisk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 15:36:16