维基百科指出,“在计算机编程中,弱引用是一种不会保护所引用的对象免受垃圾回收器回收的引用”。这两种类型的引用在代码中是如何表现的?弱引用是由自动释放消息创建的引用吗?
维基百科指出,“在计算机编程中,弱引用是一种不会保护所引用的对象免受垃圾回收器回收的引用”。这两种类型的引用在代码中是如何表现的?弱引用是由自动释放消息创建的引用吗?
__weak
)可以创建弱引用。弱引用是指没有足够的强度来保持对象在内存中的引用,而强引用会强制对象保留在内存中。
如果您已经创建了对任何变量的弱引用,那么您可能会得到 nil。
UITableViewDelegate
、UIScrollViewDelegate
等都是弱引用的例子。
强引用的示例:
MyClass *obj1 = [[Myclass alloc] init];
Myclass *obj2 = obj1;
这里obj2
对obj1
有强引用,意味着如果你将obj2
从内存中移除,则obj1
也会被移除。
weak
和assign
是同样的吗? - M S