簡體   English   中英

Objective-C ^運算符

[英]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教程中逐字逐句,(你可以在這里找到另一個好的教程):

  • 塊文字是“匿名的”(即無名)
  • 插入符號(^)符號
  • 我們沒有必要指定返回類型 - 編譯器可以“推斷”它。 如果我們願意,我們可以明確地提到它。

這是官方文檔,請閱讀以獲取更多信息。

這是開始一個塊的信號。

您可以通過閱讀一些教程博客或文章找到更多關於塊的信息:

塊 - iOS 4中一個有趣的Objective-C加法

如何在iOS 5教程中使用塊

當您知道塊的基本內容時,可以參考Apple關於塊的文檔

實際上,最經常使用的塊將是GCD (代表Grand Central Dispatch,這是你的問題), UIView的動畫以及其他類似回調的東西。 它在現代Obj-C編程中非常有用和常見。

它用於在對象c塊中創建塊,就像c中的函數指針一樣。 這可能對你有所幫助

結帳此鏈接

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM