IOS block 循環參考的解決,iosblock循環參考

來源:互聯網
上載者:User

IOS block 循環參考的解決,iosblock循環參考

在介紹block循環參考前我們先瞭解一下typeof。

typeof是什嗎???

typeof 是一個一元運算,放在一個運算數之前,運算數可以是任意類型。 它傳回值是一個字串,該字串說明運算數的類型。

一、對於數字類型的運算元而言,typeof返回的值是number。比如說:typeof(1),返回的值就是number。 上面是舉的常規數字,對於非常規的數字類型而言,其結果返回的也是number。比如typeof(NaN),NaN在 JavaScript中代表的是特殊非數字值,雖然它本身是一個數字類型。

二、對於字串類型,typeof返回的值是string。比如typeof("123")返回的值是string。

三、對於布爾類型,typeof返回的值是boolean.比如typeof(true)返回的值是boolean。

四、對於對象、數組、null 返回的值是 object 。比如typeof(window),typeof(document),typeof(null)返回的值都是object。

五、對於函數類型,返回的值是 function。比如:typeof(eval),typeof(Date)返回的值都是function。

六、如果運算數是沒有定義的(比如說不存在的變數、函數或者undefined),將返回undefined。比如:typeof(sss)、typeof(undefined)都返回undefined。

瞭解typeoy後就可以瞭解block的弱引用

為什麼要用弱引用???

我們知道block通長是與strong想匹配的,但是MRC遺留的問題我們也需要尊重,因此很多時候也會發現copy,在ARC中這兩種的效果是一樣的。既然看到strong,copy當然就要考慮到強引用問題。

我們可以這麼理解️

對象有一個Block屬性,然而這個Block屬性中又引用了對象的其他成員變數,那麼就會對這個變數本身產生強引用,那麼變數本身和他自己的Block屬性就形成了循環參考。因此我們需要對其進行處理進行弱引用。

怎麼實現弱引用???

下面是簡單的代碼:

  • __weak typeof(self) weakSelf = self;
  • self.Block = ^ {
  • if (weakSelf.people) {
  • weakSelf.people.name = @"旭寶愛吃魚";
  • }
  • }; 這裡只是簡單的介紹,想要掌握還是需要多加練習。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.