__weak typeof(&*self)ws = self,这句话什么意思?什么情况下用到这句话?

解决方案 »

  1.   

    这句话经常用在block中,因为block会strong所有在他里面用到的对象,所以如果在block中用到self的话,self会持有block,而block也会持有self,这样就会造成循环引用,这句话就是为了打破循环引用而定义了一个弱引用的self
     typeof(&*self)是获取当前这个对象的类,比如你是在某个viewcontroller中使用这个语句,那么和下面这个语句效果是一样的
    __weak viewcontroller *wself = self;