这是我的情况,我对最好的方法感到困惑(SubClass,Category,Extension,只需在我想要的所有类中编写它)。我想基本上将一个managedObjectContext添加到一堆我的视图控制器并让它传递。我必须将以下代码添加到我的大多数控制器中,并且我意识到可能有一种更简单的方法:
标头文件:
@interface
@property(weak, nonatomic) NSManagedObjectContext *managedObjectContext;
@end
.m文件:
// Synthesize the variable
@synthesize managedObjectContext;
和
// Pass on managedObjectContext
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
// If the destination VC is able to take teh setManagedObjectContext method the current objectContext will be passed along.
if ([segue.destinationViewController respondsToSelector:@selector(setManagedObjectContext:)]) {
[segue.destinationViewController performSelector:@selector(setManagedObjectContext:)
withObject:self.managedObjectContext];
} else {
NSLog(@"Segue to controller [%@] that does not support passing managedObjectContext", [segue destinationViewController]);
}
}
@end
所以这里的问题是:我有
将这些功能添加到班级的最佳方法是什么?
然而,作为一个方面,我确实希望我的课程能够在 prepareForSegue 调用中添加其他方法,这让我觉得subClassing可能是最好的。在我的个人类实现中,我可以调用[super prepareForSegue...]
。然而,开始说,我假设我必须为每个视图控制器创建一个单独的类,因为你不能进行多重继承,或者我设法让自己迷惑?
- 编辑 -
各种评论都认为分类是正确的方法,但是,如果我为 prepareForSegue 制作一个类别,我仍然能够以某种方式打电话等同于 [categoryVersion prepareForSegue] 我意识到我可能会使用不同的函数名称,但我确实想要修改prepareForSegue的默认功能