将值从 Objective-C 类传递给 Swift TableViewCell
Posted
技术标签:
【中文标题】将值从 Objective-C 类传递给 Swift TableViewCell【英文标题】:Pass value from Objective-C class to Swift TableViewCell 【发布时间】:2018-06-25 05:36:50 【问题描述】:我有一个主要用 Objective-C 编写的项目。我的目标是逐步将所有代码库迁移到 Swift。
基本单元
@interface WACategoryTableViewCell : UITableViewCell
@property (nonatomic, strong) WACategory * category;
@end
这里我为 WACategoryTableViewCell
中的 WACategory 类的实例分配了一些值- (void)configureCell:(WACategoryTableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath
WACategory *category = [self categoryAtIndexPath:indexPath];
[cell setCategory:category];
WACategoryTableViewCell 是一个基本单元格。 我有另一个单元格,我在 Swift 中以编程方式实现。 从技术上讲,在该单元格内部,我可以使用我在基本单元格中创建的 WACategory 类的实例。
@objcMembers class WACategoryPhotoCell: WACategoryTableViewCell
var passedCategory: WACategory?
didSet
func setupCategory()
let url = URL(string: self.category.iconUrl)
self.iconImageView.kf.setImage(with: url)
但是,当我尝试检索类别值时,它的值为 nil。
你能告诉我我做错了什么吗?也许有一种正确的方法可以将值从一个 Objective-C 类传递给 Swift 类。
【问题讨论】:
在将 Objective-C 对象传递给 Swift 对象时基本上没有特殊要求。在您的情况下,我看不到您在哪里尝试检索传递的类别以及为什么它应该已经存在:在您的快速单元格中,不清楚为什么您需要passedCategory
属性上的 didSet
属性观察者以及您在哪里打电话setupCategory
来自
我假设您的意思是setupCategory()
中的类别值为零?您还可以发布设置类别并调用该函数的代码块吗?
【参考方案1】:
没有将值从 Objective-C 传递到 Swift 的特定方法。
但我想建议您通过在setupCategory
方法中传递类别来配置您的单元格。
更新代码:
func setupCategory(with category: WACategory)
let url = URL(string: category.iconUrl)
self.iconImageView.kf.setImage(with: url)
【讨论】:
以上是关于将值从 Objective-C 类传递给 Swift TableViewCell的主要内容,如果未能解决你的问题,请参考以下文章