这是强还是弱?

Is this strong or weak?

假设这种情况:

__weak UIImage *image = [self calculateImage];

// a few lines later...

image = [self calculateImageUsingAnotherProcess];

假设 calculateImagecalculateImageUsingAnotherProcess 返回强引用。

好的,在第一种情况下 imageweak 但第二种情况呢? image 会保持 weak 方面吗?

第二个也会保持弱势。声明后不可更改

你不能 return 从这个意义上说,这是一个强有力的参考。放置引用的容器决定了它是强的、弱的还是其他。如果您声明了一个 weak 容器,那么您分配给它的任何引用都将被弱化。

按照惯例,由 calculateImageUsingAnotherProcess 编辑 return 的东西除了自动释放池之外将无人拥有。

所以,虽然是这样,但引用的强度并不大 "cannot be changed after the declaration",而是没有允许您尝试这样做的机制,相应地,您的代码中也没有这样的尝试.