Swift包类存储主应用UIImage引用后立即变为nil问题求助
问题排查与解决方案
可能原因及对应解决方法:
Swift Package代码未同步或缓存问题
如果修改了Swift Package中AMGridItem的初始化代码,但主应用仍在使用旧的编译缓存,会导致参数无法正确赋值。- 执行Xcode的
Product -> Clean Build Folder(快捷键Cmd+Shift+K)清理缓存,然后重新编译项目。 - 若使用本地Package,确认Package代码已保存,主应用的Package依赖关联正常;若为远程Package,更新至最新版本。
- 执行Xcode的
未在Swift Package中导入UIKit
UIImage是UIKit框架的类,Swift Package默认不会自动导入UIKit,若AMGridItem的源文件未显式导入,会导致类型识别异常(即使编译通过,也可能出现属性赋值失效的情况)。
在AMGridItem所在的.swift文件顶部添加:import UIKit验证参数传递与实例有效性
在实例化AMGridItem前后添加打印日志,确认参数和属性值的变化:print("传入的image: \(image)") // 确认非nil且为有效UIImage实例 let item = AMGridItem(title: "", text: status, image: image, type: type) print("item.image: \(item.image)")若日志显示传入的image有效但item.image为nil,需再次检查AMGridItem的初始化方法是否确实执行了
self.image = image的赋值逻辑,确保代码与你提供的一致。排查属性被意外覆盖的情况
检查AMGridItem类中是否存在image属性的didSet/willSet方法,或其他会修改image属性的逻辑,避免实例化后属性被重置为nil。
内容的提问来源于stack exchange,提问作者Dattatray Deokar
相关产品推荐
相关产品推荐

