采用 #pragma weak name 形式时,指令使 name 成为弱符号。链接程序没有找到 name 的符号定义时,不会显示错误消息,也不会出现符号的多个弱定义的错误消息。链接程序仅执行第一个遇到的定义。 如果另一个编译单元有函数或变量的强定义,那么 name 将链接到它。如果没有 name 的强定义,那么链接程序符号的值为 0。 Example1 编译单元A cu1.c #incl
转:http://stackoverflow.com/questions/9262535/explanation-of-strong-and-weak-storage-in-ios5 觉得讲的很容易理解 The difference is that an object will be deallocated as soon as there are no strong pointer
1. 类定义 // CLASS TEMPLATE weak_ptrtemplate <class _Ty>class weak_ptr : public _Ptr_base<_Ty> { // class for pointer to reference counted resourcepublic:constexpr weak_ptr() noexcept {}weak_ptr(cons
1.先举一个循环引用的列子 class Example {var num = 10var method:(Int) -> Int = {(i:Int) inreturn self.num + i}deinit {print("Example被释放了")}} method 是一个闭包类型的参数,在类的定义中被初始化为与类属性 num 进行加法的运算。 使用Example: var exa