4
參考下面的代碼,一旦塊被放入數組中,如何獲取該塊對象並運行塊中的實際代碼。Objective-C塊 - 用作對象
另一個問題:如果我在下面的塊中調用一個方法,該塊是否封裝了該方法中的代碼或者捕獲該方法的簽名並以此方式調用它?
-(void)blockCalledMethod
{
NSLog(@"Hello World");
}
-(void)programStart
{
NSArray * array = [[NSArray alloc] initWithObjects:[[^ { [self blockCalledMethod];} copy] autorelease],nil];
id pointerToBlock = [array lastObject];
}
@BoltClock,我也認爲`^ {}`和`nil`不一樣,所以你不能測試它是否存在,是嗎? `如果(pointerToBlock)`不好?塊不是NSObject的子類,雖然它們可以存儲在容器中並作爲對象處理? – 2011-01-13 15:35:14