Objective-C中的'^'是什么

Chr*_*son 7 objective-c

"^"在下面的代码中是什么意思?

@implementation AppController

- (IBAction) loadComposition:(id)sender
{
    void (^handler)(NSInteger);

    NSOpenPanel *panel = [NSOpenPanel openPanel];

    [panel setAllowedFileTypes:[NSArray arrayWithObjects: @"qtz", nil]];

    handler = ^(NSInteger result) {
        if (result == NSFileHandlingPanelOKButton) {
            NSString *filePath = [[[panel URLs] objectAtIndex:0] path];
            if (![qcView loadCompositionFromFile:filePath]) {
                NSLog(@"Could not load composition");
            }
        }
    };

    [panel beginSheetModalForWindow:qcWindow completionHandler:handler];
}
@end
Run Code Online (Sandbox Code Playgroud)

===我搜索过并搜索过 - 这是对内存的某种特殊参考吗?

Mar*_*tos 9

这里阅读它.它是一个"块对象",基本上是一个lambda形式,并被引入以支持Snow Leopard的GCD(Grand Central Dispatch).


Mat*_*her 7

小的一边:当用作二元运算符时,'^'字符(插入字符或限制字符)具有不同的含义:

a ^ b
Run Code Online (Sandbox Code Playgroud)

是指XOR b.XOR(也称为异或)是二进制算术运算,其中结果在任何位位置都有1,其中a或b具有1而不是两者.