Use __weak *bself to avoid potential retain cycle of self.