[英]Objective-C the ^ operator
我是Objective C的新手並試圖找出^運算符是什么? 在探索一些源代碼時,我看到了下一個構造:
dispatch_once(&onceToken, ^{
UIGraphicsBeginImageContextWithOptions(CGSizeMake(20.f, 13.f), NO, 0.0f);
[[UIColor blackColor] setFill];
[[UIBezierPath bezierPathWithRect:CGRectMake(0, 0, 20, 1)] fill];
[[UIBezierPath bezierPathWithRect:CGRectMake(0, 5, 20, 1)] fill];
[[UIBezierPath bezierPathWithRect:CGRectMake(0, 10, 20, 1)] fill];
[[UIColor whiteColor] setFill];
[[UIBezierPath bezierPathWithRect:CGRectMake(0, 1, 20, 2)] fill];
[[UIBezierPath bezierPathWithRect:CGRectMake(0, 6, 20, 2)] fill];
[[UIBezierPath bezierPathWithRect:CGRectMake(0, 11, 20, 2)] fill];
defaultImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
});
而且我想知道^是什么?
^
表示Objective-C中塊定義的開始。
請看這里: http : //developer.apple.com/library/ios/#documentation/cocoa/Conceptual/Blocks/Articles/bxGettingStarted.html#//apple_ref/doc/uid/TP40007502-CH7-SW1
請注意,在此上下文中, ^
不是運算符,它是Objective-C語法的一部分@Mike的向下投票答案嚴格地說是“^運算符”的正確定義
它在目標C中稱為塊
句法:
returnType (^variableName)(parameters);
從Akiel Khan的教程中逐字逐句,(你可以在這里找到另一個好的教程):
- 塊文字是“匿名的”(即無名)
- 插入符號(^)符號
- 我們沒有必要指定返回類型 - 編譯器可以“推斷”它。 如果我們願意,我們可以明確地提到它。
這是開始一個塊的信號。
您可以通過閱讀一些教程博客或文章找到更多關於塊的信息:
當您知道塊的基本內容時,可以參考Apple關於塊的文檔 。
實際上,最經常使用的塊將是GCD (代表Grand Central Dispatch,這是你的問題), UIView的動畫以及其他類似回調的東西。 它在現代Obj-C編程中非常有用和常見。
它用於在對象c塊中創建塊,就像c中的函數指針一樣。 這可能對你有所幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.