2010-07-01 43 views
0

的性能。这是我如何访问它:找回我面对在检索“ID”类型的对象的性质有些困难“ID”类型的对象iphone

我做以下以从通用阵列包含不同类型的对象,并调用方法“SAVEDATA”到我传递的对象作为分配对象到ID类型的对象以及它的类型:

for(id objInArray in genericArray){ 
    NSString *objType = [objInArray valueForKey:@"type"]; 
    [objInArray retain]; 
    [self saveData:objInArray :objType]; 
} 

在SAVEDATA方法我在写下面的代码来获取ID对象的属性:

-(void)saveData:(id)object :(NSString *)objectType 
{ 
self.managedObjectContext = appDelegate.managedObjectContext; 

if([objectType isEqualToString:@"event"]) 
{ 
    Event * newEvent = (Event *)[NSEntityDescription 
           insertNewObjectForEntityForName:@"Event" 
           inManagedObjectContext:self.managedObjectContext]; 


    [newEvent setEletitle:[NSString stringWithFormat:@"%@", [object valueForKey:@"eletitle"]]]; 

    [self saveAction]; 
} 

但对象“对象”包含值未能将其分配到对象newEvent。 我也试过在一个字符串对象像这样以检索该值:

NSString *eletit = [object valueForKey:@"eletitle"]; 
    [eletit retain]; 

但eletit也是在本次交易的最终无效。

任何人都可以请帮忙吗?这真的很紧急。

Thanx提前。

回答

0

我没有回答很遗憾,但我对你的代码几点意见。 你确定数组包含泛型对象是正常的吗?这很奇怪,因为数组中包含的所有对象都需要响应“type”或“eletitle”消息,所以我认为objInArray不如“id”那么通用。

其次,它不建议在选择像SAVEDATA ::,在Objective-C是通常的,并建议命名的参数,它更可以理解的。

+0

1.在我的阵列的对象是仅具有几个相似的属性的[像ID,类型]不同类型的对象。基本上我试图把对象作为一个整体读入id对象,所以这很正常。你说得对,我应该说出我的观点。我一定会修补它的。 – neha 2010-07-01 08:41:39

+0

好的,但所有对象都必须响应“type”和“eletitl”,因此您必须创建一个协议,并且阵列中的所有对象都必须遵守此协议。 我知道,不幸的是不能解决您的问题,但这是最佳做法。 此致 – Greensource 2010-07-01 10:02:36