判断一个AnyObject实例是否存在唯一的强引用isKnownUniquelyReferenced
isKnownUniquelyReferenced:用于判断一个AnyObject实例是否只存在唯一的强引用
class MyClass {}
判断MyClass实例存在唯一的强引用的例子:
var cls = MyClass() if isKnownUniquelyReferenced(&cls) { print("cls存在唯一的强引用") }else{ print("cls不存在唯一的强引用,存在其他类型的实例对它有强引用") }
输出:cls存在唯一的强引用(因为cls只有自己强引用自己)
判断MyClass实例不存在唯一的强引用的例子:
struct MyStruct { let cls: MyClass } var cls = MyClass() let s1 = MyStruct(cls: cls) if isKnownUniquelyReferenced(&cls) { print("cls存在唯一的强引用") }else{ print("cls不存在唯一的强引用,存在其他类型的实例对它有强引用") }
输出:cls不存在唯一的强引用,存在其他类型的实例对它有强引用(因为cls同时被s1实例强引用)
weak或unowned(无主引用),不算强引用
struct MyStruct { weak var cls: MyClass? // weak是弱引用 } var cls = MyClass() let s1 = MyStruct(cls: cls) if isKnownUniquelyReferenced(&cls) { print("cls存在唯一的强引用") }else{ print("cls不存在唯一的强引用,存在其他类型的实例对它有强引用") }
输出:cls存在唯一的强引用(因为weak是弱引用,因此存在强引用的只有它自己)
要得到你必须要付出,要付出你还要学会坚持,如果你真的觉得很难,那你就放弃,但是你放弃了就不要抱怨,我觉得人生就是这样,世界真的是平等的,每个人都要通过自己的努力,去决定自己生活的样子。