2013-03-25 16 views
9

Jestem nowicjuszem w Objective C i próbuję dowiedzieć się, co robi operator ^? Podczas eksploracji kodu źródłowego zobaczyłem następną konstrukcję:Objective-C the^operator

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(); 

}); 

Chciałabym wiedzieć, co to jest?

+0

Przeczytaj to: http://developer.apple.com/library/ios/#documentation/cocoa/Conceptual/Blocks/Articles/00_Introduction.html –

+3

@DanielSchneller Powiedziałbym, że dzieje się tak, ponieważ w tym przypadku bardzo trudno jest znaleźć dokumentację na blokach, jeśli nie wiesz, jak się nazywa. Możesz przeczytać przewodnik Objective-C, ale nie jest to najlepszy sposób na naukę. –

+0

@RogerNolan Całkowicie się z tobą zgadzam, dziękuję. – HackU

Odpowiedz

16

^ wskazał początek definicji bloku w Objective-C.

Sprawdźcie tutaj: http://developer.apple.com/library/ios/#documentation/cocoa/Conceptual/Blocks/Articles/bxGettingStarted.html#//apple_ref/doc/uid/TP40007502-CH7-SW1

pamiętać, że w tym kontekście ^ nie jest operatorem, jest częścią składni Objective-C @ odpowiedź dół głosowali Mike'a jest absolutnie poprawna definicja "^ operator"

+0

Dziękuję za szybką odpowiedź. Bardzo mi to pomogło! – HackU

+0

@HackU powinieneś oznaczyć poprawną odpowiedź. –

+0

Dziękujemy, @RogerNolan za wykonanie tej ważnej edycji. –

2

Służy do tworzenia bloków w blokach obiektów c są jak wskaźniki funkcji w c. To może pomóc

checkout this link

+0

Dziękujemy za dodatkowe linki! – HackU

+0

Serdecznie zapraszamy! – Rafeek

4

Tutaj jest to sygnał do rozpoczęcia bloku.

można znaleźć więcej informacji o bloku czytając niektóre samouczka blogi lub artykuły:

Blocks – An Interesting Objective-C Addition In iOS 4

How To Use Blocks in iOS 5 Tutorial

Kiedy wiesz, że podstawową rzeczą bloku, można zwrócić się do Apple's document about block.

W rzeczywistości najbardziej regularnym używaniem bloku będzie GCD (oznacza Grand Central Dispatch, o którym mowa w tym przypadku), UIView's animation i coś innego, jak wywołanie zwrotne. Jest to bardzo przydatne i powszechne w nowoczesnym programowaniu Obj-C.

+0

Dziękujemy za dodatkowe linki! – HackU

Powiązane problemy