2010-10-28 42 views
1

大家好: 我是一個iPhone大一需要幫助,Objective C的奇怪參數

今天有線參數搞糊塗了,

- (UIBackgroundTaskIdentifier)beginBackgroundTaskWithExpirationHandler:(void(^)(void))handler 

/* ... */ 

bgTask = [application beginBackgroundTaskWithExpirationHandler: ^{ 
    dispatch_async(dispatch_get_main_queue(), ^{ 
     [application endBackgroundTask:self->bgTask]; 
     self->bgTask = UIBackgroundTaskInvalid; 
    }); 
}]; 

是什麼void(^)

我從未見過這個,我希望有人能幫助我

謝謝!

回答

0

(void(^)(void))handler意味着「處理」的參數是一個Objective-C塊不帶任何參數,並且沒有返回。

在你的榜樣,處理程序塊是:

^{ 
    dispatch_async(dispatch_get_main_queue(), ^{ 
     [application endBackgroundTask:self->bgTask]; 
     self->bgTask = UIBackgroundTaskInvalid; 
    }); 
    } 

塊的內容是什麼裏面的 「^ {...}」。請注意,這是嵌套塊的一個示例:該塊包含對dispatch_async的函數調用,該函數調用block參數。

+0

謝謝我的朋友! – BPS1945 2010-10-28 05:42:51