-2
我在iOS開發人員的一些代碼中看到。它有一些代碼如下:有人解釋一些代碼嗎?
void (^block)(NSUInteger buttonIndex, UIAlertView *alertView) = objc_getAssociatedObject(self, "blockCallback");
不過。我不明白爲什麼分配對象自我來阻止代碼。該方法的完整代碼是:
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex {
void (^block)(NSUInteger buttonIndex, UIAlertView *alertView) = objc_getAssociatedObject(self, "blockCallback");
if (block) {
block(buttonIndex, self);
}
}
這是完全代碼: - (無效)alertView:(UIAlertView中*)alertView clickedButtonAtIndex:(NSInteger的)buttonIndex { \t空隙(^塊)(NSUInteger buttonIndex,UIAlertView中* alertView)= objc_getAssociatedObject(個體,「 blockCallback「);如果(塊){block1(buttonIndex,self); } \t } –
它看起來像一個使用塊代替委託的警報視圖類別。你不明白哪一點? – jrturton
我不明白,爲什麼在block中分配給objc_getAsscociated的塊需要一些參數。 –