我正在开发一个应用程序,其中有两个非常相似的模型类。我想在一个视图控制器中使用这两个类,该布局基于模型类的属性。问题是我目前有很多 if 语句来检查它是哪个类。
例子:
- (UIView *)setUpViewForObject:(id)object
{
// Check if it is a Post or Event object
Post *post;
Event *event;
if ([object class] == [Event class]) {
event = (id)object;
} else if ([object class] == [Post class]) {
post = (id)object;
}
if (post) {
// Do stuff
// ie:
self.customUiView.textField.text = post.text;
} else if (event) {
// Do similar stuff
// ie:
self.customUiView.textField.text = event.text;
}
}
这个解决方案似乎很多余,我在几个地方做了。因此,我想知道是否可以创建两个 NSManagedObject 类的包装类。我使用 CoreData 并从 xCode 生成模型,所以我不会使用所有这些 if 语句。
就像是:
@interface News : NSManagedObject
[...]
@property (nonatomic, retain) NSString * text;
[...]
@interface Event : NSManagedObject
[...]
@property (nonatomic, retain) NSString * text;
[...]
是否可以创建这两个 NSManagedObject 类的包装类,可能使用枚举。我也希望这些对象是可更新的、可删除的等。当时我在想我也许可以使用 Enum 或类似的东西来创建一个抽象类,但我不知道这样的类的外观、工作和使用方式。
如果这是可能的,任何建议,在这种情况下,像这样的包装类将如何看起来将不胜感激。