我有利用在標頭中定義這樣的塊的類:是否可以擴展現有的Objective-C塊?
@property (readwrite, copy) RequestSucceededBlock succeededBlock;
屬性succeededBlock
已經設置與塊。有沒有一種方法可以將另一個仍然調用原始塊的Block重寫,類似於類繼承?
我認爲這是不可能的,因爲類繼承應該用來表達類似的東西。它仍然有可能嗎?
我有利用在標頭中定義這樣的塊的類:是否可以擴展現有的Objective-C塊?
@property (readwrite, copy) RequestSucceededBlock succeededBlock;
屬性succeededBlock
已經設置與塊。有沒有一種方法可以將另一個仍然調用原始塊的Block重寫,類似於類繼承?
我認爲這是不可能的,因爲類繼承應該用來表達類似的東西。它仍然有可能嗎?
假設你正在談論試圖在仍然調用父塊子類中的替換塊,你不能注入一個塊到現有的塊,但你可以假,如下所示:
// in MySubclass.h
@property (nonatomic, copy) RequestSucceededBlock subclassSucceededBlock;
// in MySubclass.m
- (RequestSucceededBlock)succeededBlock
{
[return subclassSucceededBlock];
}
- (void)setSucceededBlock:(RequestSucceededBlock)newSucceededBlock
{
// make sure this conforms to the definition of RequestSucceededBlock
RequestSucceededBlock combinedBlock = ^{
dispatch_async(dispatch_get_current_queue(), newSucceededBlock);
dispatch_async(dispatch_get_current_queue(), [super succeededBlock]);
};
subclassSucceededBlock = combinedBlock;
}
雖然b/c假設超類有一個默認塊分配給succeededBlock
,但您想分派,但這有些奇怪。如果您的問題有不同的用途請澄清,我會看看我是否可以更新此。
編輯:添加copy
到伊娃
只是把我的頭頂部,使前半模塊的另一個副本的地方訪問,並從後者塊稱呼呢? –