这是强还是弱?
Is this strong or weak?
假设这种情况:
__weak UIImage *image = [self calculateImage];
// a few lines later...
image = [self calculateImageUsingAnotherProcess];
假设 calculateImage
和 calculateImageUsingAnotherProcess
返回强引用。
好的,在第一种情况下 image
是 weak
但第二种情况呢? image
会保持 weak
方面吗?
第二个也会保持弱势。声明后不可更改
你不能 return 从这个意义上说,这是一个强有力的参考。放置引用的容器决定了它是强的、弱的还是其他。如果您声明了一个 weak
容器,那么您分配给它的任何引用都将被弱化。
按照惯例,由 calculateImageUsingAnotherProcess
编辑 return 的东西除了自动释放池之外将无人拥有。
所以,虽然是这样,但引用的强度并不大 "cannot be changed after the declaration",而是没有允许您尝试这样做的机制,相应地,您的代码中也没有这样的尝试.
假设这种情况:
__weak UIImage *image = [self calculateImage];
// a few lines later...
image = [self calculateImageUsingAnotherProcess];
假设 calculateImage
和 calculateImageUsingAnotherProcess
返回强引用。
好的,在第一种情况下 image
是 weak
但第二种情况呢? image
会保持 weak
方面吗?
第二个也会保持弱势。声明后不可更改
你不能 return 从这个意义上说,这是一个强有力的参考。放置引用的容器决定了它是强的、弱的还是其他。如果您声明了一个 weak
容器,那么您分配给它的任何引用都将被弱化。
按照惯例,由 calculateImageUsingAnotherProcess
编辑 return 的东西除了自动释放池之外将无人拥有。
所以,虽然是这样,但引用的强度并不大 "cannot be changed after the declaration",而是没有允许您尝试这样做的机制,相应地,您的代码中也没有这样的尝试.