检索“id”类型对象iphone的属性

时间:2010-07-01 06:32:34

标签: iphone object

我在检索“id”类型对象的属性时遇到了一些困难。这就是我访问它的方式:

我正在做以下操作,从包含不同类型对象的通用数组中将对象分配给id类型对象,并调用我传递对象的方法“savedata”及其类型:

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];
}

但是包含值的对象“object”无法将它们分配给对象newEvent。 我还尝试在这样的字符串对象中检索此值:

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

但是,在此交易结束时,eletit也无效。

有人可以帮忙吗?这真的很紧急。

提前完成。

1 个答案:

答案 0 :(得分:0)

遗憾的是我没有你回答,但我对你的代码几乎没有评论。 你确定你的数组包含如此泛型对象是正常的吗?这很奇怪,因为你的数组中包含的所有对象都需要响应“type”或“eletitle”消息,所以我猜objInArray不仅仅是“id”。

其次,不推荐像saveData ::这样的选择器,在Objective-C中通常并建议命名参数,这是更容易理解的。

相关问题