我正在开发一个应用程序,其中有两个非常相似的模型类。我想在一个视图控制器中使用这两个类,该布局基于模型类的属性。问题是我目前有很多if语句来检查它是哪个类。如何创建两个模型类的包装类在objective-c
例子:
- (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或类似的东西来创建一个抽象类,但是我不知道这样的类会如何工作和使用。
任何建议,如果这是可能的,在这种情况下这样的包装类会看起来将不胜感激。
'如果([对象类别] == [事件类])'是危险的,请使用'[object isKindOfClass:[Event class]]'代替。 – 2012-08-04 13:17:45