objective c 到 swift 的转换。 (#define 和弱)
objective c to swift conversion. (#define and weak)
我一直在将#define 和weak 从objective c 转换为swift。我尝试使用 objective c 到 swift 转换器,但我认为转换结果不正确。
#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) 设置为 self。但是,我不确定什么??应该是。
WeakRef
只是给你一个对某个对象的弱引用,而在 Swift 中,那只是 weak var foo = obj
;它不需要实用方法。
WeakReturn
不能在Swift中复制,因为Obj-C宏用于在函数中插入条件return。 Swift 中没有宏,您定义的 Swift WeakReturn
函数绝对没有任何作用——它 return 对象是否为 nil
;您所做的就是明确其中一个 return。我的猜测是这个宏被添加到 Obj-C 代码中是为了让一些懒惰的程序员免于编写 if obj == nil return;
。
我一直在将#define 和weak 从objective c 转换为swift。我尝试使用 objective c 到 swift 转换器,但我认为转换结果不正确。
#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) 设置为 self。但是,我不确定什么??应该是。
WeakRef
只是给你一个对某个对象的弱引用,而在 Swift 中,那只是 weak var foo = obj
;它不需要实用方法。
WeakReturn
不能在Swift中复制,因为Obj-C宏用于在函数中插入条件return。 Swift 中没有宏,您定义的 Swift WeakReturn
函数绝对没有任何作用——它 return 对象是否为 nil
;您所做的就是明确其中一个 return。我的猜测是这个宏被添加到 Obj-C 代码中是为了让一些懒惰的程序员免于编写 if obj == nil return;
。