我有利用在标头中定义这样的块的类:是否可以扩展现有的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
到伊娃
只是把我的头顶部,使前半模块的另一个副本的地方访问,并从后者块称呼呢? –