關于Block的一個經典bug

之前常常遇到block的循環引用問題,就稍微研究了一下,block對于訪問外部對象類型有嚴格的限制,通常會使用__block,__week修飾一下,然而這二者也還是有區別的,具體后期補上
先說遇到的問題

ProductDetailVC *productVC = [[ProductDetailVC alloc] init];

            
            goodsCell.selectBolck = ^(NSUInteger index) {
              
                
                GolbalGoodsModelgoods *goods = _golbalGoodsArr[index];
                
                productVC.pro_id = goods.pro_id;
                
                [self.navigationController pushViewController:productVC animated:YES];
                
            };

這是一開始的代碼,每次取到的pro_id都是不同的,但是沒次打開都是一個pro_id,回頭想一下才明白還是block引用的問題。

 goodsCell.selectBolck = ^(NSUInteger index) {
              
                ProductDetailVC *productVC = [[ProductDetailVC alloc] init];
                
                GolbalGoodsModelgoods *goods = _golbalGoodsArr[index];
                
                productVC.pro_id = goods.pro_id;
                
                [self.navigationController pushViewController:productVC animated:YES];
                
            };

如此便解決

參考鏈接:
http://www.lxweimin.com/p/8995a60384fd

http://www.lxweimin.com/p/a19f6dbb14da

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 在此特此聲明:一下所有鏈接均來自互聯網,在此記錄下我的查閱學習歷程,感謝各位原創作者的無私奉獻 ! 技術一點一點積...
    遠航的移動開發歷程閱讀 11,239評論 12 197
  • 前言 Blocks是C語言的擴充功能,而Apple 在OS X Snow Leopard 和 iOS 4中引入了這...
    小人不才閱讀 3,787評論 0 23
  • 今天算是正式開學 其實昨天就來了,跟男票出去浪了 這一周沒有課下周開始見習 深深感覺考研已經在我生活中了 同學們都...
    _Misty_閱讀 61評論 2 0
  • 鄉親們父老們,大家好,這是咱九組第一次的介紹,希望喜歡的鼓個掌,有人捧個人場,沒人就點個贊\(≧≦)/ 首先我要介...
    1a7c398bff4d閱讀 741評論 0 0
  • 首次(或者安裝新版本)pod realm的時候,會下載sync-cocoa,core文件,這兩兒文件有點大,所以p...
    Chakery閱讀 2,480評論 0 1