Skip to Content
COCOA學習手冊--使用OBJECTIVE-C第三版
book

COCOA學習手冊--使用OBJECTIVE-C第三版

by Paris Buttfield-Addison, Jonathon Manning
June 2013
Intermediate to advanced
360 pages
6h 50m
Chinese
GoTop Information, Inc.
Content preview from COCOA學習手冊--使用OBJECTIVE-C第三版
Block Operation Queue
|
93
要解決這個問題,如果你希望 block 在函式返回之後繼續存在,就必須將這個 block
到堆積。為了做到這件事,你必須傳送
copy
訊息給 block,方法就如同你傳送訊息給
任何其他 Objective-C 物件。一旦 block 被複製到堆積,它便能夠安全地被儲存到任何
地方。當然,它之後必須被取消配置(deallocated),以避免記憶體滲漏的問題發生,
不過,垃圾收集器(garbage collector)與自動參考計數(ARCAutomatic Reference
Counting)會幫你處理這項工作。
下面例子說明如何將 block 儲存為實例變數,以及如何不要︰
// myBlockProperty 是這個類別當中用來存放該 block 的特性。
void(^myBlockVariable)() = ^{
// 程式碼在此
};
self.myBlockProperty = myBlockVariable; // 不正確!該 block
// 在函式返回後不復存在,呼叫它會發生程式失敗。
self.myBlockProperty = [myBlockVariable copy]; // 安全。該 block
// 會被複製並且儲存在堆積中,並且繼續存在。
具有 block 參數的方法
方法可以接受 block 參數。這實際上是 block 的關鍵功能之一,因為這樣允許方法呼叫
者在它們呼叫方法時即時提供程式碼。我們已經知道這如何被用來過濾陣列,但還有其 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

網頁互動式資料視覺化:使用D3

網頁互動式資料視覺化:使用D3

Scott Murray
深入淺出代數

深入淺出代數

Tracey Pilone, Dan Pilone
自然语言处理实战:从入门到项目实践

自然语言处理实战:从入门到项目实践

Sowmya Vajjala, Bodhisattwa Majumder, Anuj Gupta, Harshit Surana

Publisher Resources

ISBN: 9789862768136