1. 程式人生 > >關於block的回調使用-防止內存泄露問題

關於block的回調使用-防止內存泄露問題

lba bottom mar group sel load pos content form

block 一般用於回調,比方請求數據我們把asi封裝好,僅僅用block調數據就方便很多

獲取到得數據假設要給之加入數據,切記不能夠使用self.(這個數組) 或者_(這個數組) addObject 這個函數

由於我們要在block內部改變外部變量,我們須要在使用blcok回調之前

聲明

__weaktypeof(self) wekSelf = self; (在這裏我使用wekSelf)

在block回調代碼段內 一切self(數組或者控件) 所有替換成wekSelf防止內存泄露。


呈現一段代碼:

__weak typeof(self) wekSelf =

self;

self.page = 1;

NSDictionary *dic = @{@"page":@(self.page)};

[MyDataServicepostMonopolyGroupListRequest:dic cllback:^(id data) {

if ([[data objectForKey:@"code"]integerValue] == 200) {

NSArray *content = [[data objectForKey:@"content"

]objectForKey:@"subject_lists"];

if (content && ![content isKindOfClass:[NSNull class]]) {

[wekSelf.groupArrremoveAllObjects];

for (NSDictionary *dicin content) {

MYGroup

*model = [[MYGroupalloc] initWithJson:dic];

[wekSelf.groupArraddObject:model];

}

dispatch_async(dispatch_get_main_queue(), ^{

[wekSelf.circleTableViewreloadData];


[wekSelf.circleHeaderperformSelector:@selector(endRefreshing)withObject:nilafterDelay:0.1];

});

}

}

}];



關於block的回調使用-防止內存泄露問題