将值从 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的主要内容,如果未能解决你的问题,请参考以下文章

使用DAO将值从java类传递给jsp页面

Flutter:如何将值从 streamprovider / listview builder 传递给另一个类

如何将值从angularjs传递给节点[重复]

如何将值从javascript变量传递给剃刀变量?

将值从灯箱传递给父级

无法正确地将值从父母传递给孩子和孩子传递给父母