IOS基礎_Block語法的簡單使用

開始學IOS的時候沒怎麼接觸過block語句,在後來用到的越來越多,就不得不學了,剛開始理解比較困難的,然後自己做了一個例子就慢慢理解了,www.ios5.online不說廢話了,上代碼:

正常的簡單地申明調用一個block語句是這樣的:

//申明

int (^yxpBlock)(int, int) =^(int a ) {return a*a ;};

說明:返回值(^語句塊名稱)(傳人參數類型)=^(傳人參數){主體};

//調用

int result = square(5);

我建了一個測試項目包含了(yxpAppDelegate和yxpViewController)兩個類

在yxpViewController類裡面

申明了一個block語句類型

@classyxpViewController;

typedef void (^yxpBlock) (yxpViewController *);

在yxpViewController 申明了yxpBlock變量

@interface yxpViewController :UIViewController

@property (nonatomic,assign)yxpBlock yxpblock;

@end

在touchesBegan: withEvent:調用block語句 (調用block語句要用一根下劃線,@propert默認提供)

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event

{

_yxpblock(self);

}

//在yxpAppDelegate中使用了block語句

__blockNSString *[email protected]"觸摸屏幕";

yxpViewController *viewContro=[[yxpViewControlleralloc] init];

viewContro.yxpblock=^(yxpViewController *viewController){

NSLog(@"---------%@",str);

};

self.window.rootViewController=viewContro;

注意:block語句可以讀取外部變量,但是不能寫入,如果需要在block語句裡修改外部變量,外部變量要用__block (兩根下劃線)標識

將這個例子弄懂相信你就對block語句有一個初步的了解了,了解更多:http://www.ios5.online/ios/iosjc/iosjczs/201703/40770.html

时间: 2024-09-27 22:22:11

IOS基礎_Block語法的簡單使用的相关文章

GO語言基礎教程:序章

首先自我介紹一下我自己,我是一個coder,目前主要從事B/S程序開發工作,懂點PHP;ASP;JSP;JS;VB;C;DELPHI;JAVA,另外知道幾個數據庫,除此之外別無所長,那麼我為何會選擇學習GO呢!接下來我對此詳細說明一下. 首先我來說明一下C/S程序和B/S程序的優缺點: C/S程序主要是運行在客戶端的電腦上,通常採用安裝的形式,以windows操作系統為例,軟件會被編譯成二進制然後以exe或dll等方式存在於客戶端的電腦上,其執行效率是非常高的,當然了除非編程者把代碼寫的非常糟糕

FMDB與SQLite 數據庫應用示範:打做一隻簡單的電影資料庫 App

原文:http://www.appcoda.com/fmdb-sqlite-database/ 作者:GABRIEL THEODOROPOULOS 譯者:kmyhy 通常在 App 中使用數據庫并處理數據都會是一個重要和嚴肅的話題.在幾個月前我寫了一篇關於如何利用 SwiftyDB 來管理 SQLite 數據庫的文章.今天,我又提起數據庫這個話題,只不過這次我會介紹另一個庫.你也許聽說過了,它就是FMDB. 這兩個庫的功能都是一樣的,都是用來與 SQLite 數據庫打交道并允許你高效地管理你的

GO語言基礎教程:數據類型,變量,常量

GO類似PHP,每行的結尾要加分號來結束,不同點在於GO對此並不強制,這一點又像javascript,另外GO的語句塊是用一對大括號來包裹的,但是go要求左大括號必須要在語句的結尾處,不能在行首出現左大括號,這是一個新的特性,至少在我接觸的編程語言中第一次遇到這種狀況.還有就是GO對大小寫敏感,這一點相信大家不會有什麽爭議.    GO語言的註釋方法和PHP是相同的,單行註釋用//,而多行註釋用/*註釋內容*/,這一點是沒差別的. Go有眾所周知的數據類型int,這個類型很特殊,他會自動根據您的

GO語言基礎教程:Hello world!

首先簡單地說一下GO語言的環境安裝,從 http://golang.org/dl/ 針對自己的操作系統選擇合適的安裝包,然後下載安裝即可,下載的時候注意別選錯了的操作系統,例如go1.3.1.darwin-386-osx10.6.tar.gz 這個是蘋果操作系統的安裝包,go1.3.1.linux-amd64.tar.gz 這個是64位linux的安裝包,go1.3.1.windows-amd64.msi 這個是64位windows系統的安裝包,安裝過程很簡單,參照說明一步一步進行即可,在此不再

GO語言基礎教程:流程控制

在開始一個新的章節之前先來回顧上一篇文章的部份,首先我們來看這段代碼: package main import ( "fmt" ) func main(){ var x,y int=1,2 { var x int=2 { var x int=3 fmt.Println(x,y) //首先輸出3,2 如果我把這行輸出語句注解掉,大家猜猜會如何? } fmt.Println(x,y) //其次輸出2,2 } fmt.Println(x,y) //最後輸出1,2 } 執行結果我已經加到註釋內

Makefile 語法簡介

有稍稍在 Linux 下碰過程式設計的開發者應該會知道,make 是用來將程式碼.函式庫.標頭檔及其它資源檔 build 成最終成果(即:最終的應用程式)的超強力輔助工具. 當然了,並不是非得動用到 make 才能 build 程式,或許有什麼程式設計魔人喜歡什麼都自己手動進行:但利用 make 及其參考檔(輸入檔案)Makefile將會讓整個編譯工作輕鬆許多.若您曾經打包過 Debian Package,那麼應該會發現 debuan/rule 這個檔案的語法和 Makefile 幾乎是一模一樣

GO語言基礎教程:array,slice,map

這節課我們來講解數組,切片和map,或許您是從其他語言轉到GO語言這邊的,那麼在其他語言的影響下您可能會不太適應GO語言的數組,因為GO語言把數組給拆分成了array,slice和map,接下來的時間讓我們一起研究一下這三者的差異以及用法.首先我們說一下array的部份: 1.數組的長度屬於數組的一部份,我們看下邊的例子 a:=[1]int{}和b:=[2]int{} a和b都是數組,但是他們的長度不同,在GO語言中會認為是不同的兩種類型,既然是不同的類型,那麼他們就不能進行比較或直接賦值的操作

為 Swift 代碼編寫含有 Mardown 語法的文檔

原文:Documenting Your Swift Code in Xcode Using Markdown 作者:GABRIEL THEODOROPOULOS 译者:kmyhy 在 Xcode 7 的所有新功能中,有一個最引人注目的新功能,能够讓你以更好的方式来书写代码文檔.從 Xcode 7 開始,開發者終於可以在他們的文檔中使用强大 Markdown 語法來進行富文本编辑了,Markdown 語法用一些特殊的關鍵字來描述文檔中的不同部分,比如參數.函數返回值等,從而使這些結構顯示出不同的樣

Java學習筆記(基本語法)

本文件是以學習筆記的概念為基礎,用於自我的複習紀錄,不過也開放各位的概念指證.畢竟學習過程中難免會出現觀念錯誤的問題.也感謝各位的觀念指證. 安裝JDK 在Oracle網站中找自己系統的JDK下載位置 設定 PATH windows10 =>本機=>右鍵內容=>進階系統設定=>進階=>環境變數 設定 第一個程式Hello World 12345678910111213 public class { /** 程式的預設的進入點, 必須是public static, 另外這是Ja