2010-07-01 73 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