¿Cuál es la diferencia entre una referencia __weak y una __block?

Estoy leyendo la documentación de Xcode y aquí hay algo que me desconcierta: __block typeof(self) tmpSelf = self; [self methodThatTakesABlock:^ { [tmpSelf doSomething]; }]; Lo siguiente se copia de la documentación: Un bloque forma una fuerte referencia a las variables que captura. Si lo...