我正在開發一個應用程序,其中有兩個非常相似的模型類。我想在一個視圖控制器中使用這兩個類,該佈局基於模型類的屬性。問題是我目前有很多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