assign和weak的区别