目标C迅速转换.(#Define and弱)



我被困在#define和从目标C转换为swift的弱弱。我试图使用目标C快速转换器,但我认为转换的结果不正确。

#define WeakRef(__obj) __weak typeof(self) __obj = self
#define WeakReturn(__obj) if(__obj ==nil)return;
WeakRef(weakSelf);
WeakReturn(weakSelf);

在第二,第三和第三行,我认为这应该是Swift

中的类似的东西
func WeakReturn(obj: Any?) {
    if obj == nil {
        return
    }
}
WeakRef(self)
WeakReturn(self)

在我对第一行的猜测中,它首先检查了typeof(self) == ??的状况。如果为真,则将指针(__OBJ(设置为自我。但是,我不确定什么?应该是。

WeakRef只是为您提供了对某些对象的薄弱引用,而在swift中,只是 weak var foo = obj;它不需要实用方法。

WeakReturn不能在Swift中复制,因为OBJ-C宏用于在函数中插入条件返回。Swift中没有宏,您定义的Swift WeakReturn函数绝对没有任何作用 - 它是否返回对象是否为nil;您所做的只是将这些退货之一明确。我的猜测是,将此宏添加到OBJ-C代码中,以节省一些懒惰程序员,从编写if obj == nil return;中。

相关内容

  • 没有找到相关文章

最新更新