2010-07-12 61 views
2

我導入數據的量好到使用核心數據,像這樣我的應用程序:發佈對象添加到核心數據?

for (int i = 0; i < [items count]; i++) 
{ 
    Client *entity = (Client*) [NSEntityDescription insertNewObjectForEntityForName:@"Client" inManagedObjectContext:managedObjectContext]; 
    [entity setCompanyName:[[items objectAtIndex:i] objectForKey:@"CompanyName"]]; 
    //* bunch of other fields 

    NSError *error; 

    if (![managedObjectContext save:&error]) { 
     // Handle the error. 
     NSLog(@"%@",error); 
    } 
} 

我需要什麼,在這裏釋放?我應該做[實體發佈]嗎?

+0

將上下文保存移到迭代循環外部,或將其保留在循環內部,但只能在「n」次迭代後保存。 (爲'n'選擇一個好的值將取決於平臺,Mac OS X與iOS) – ohhorob 2010-07-12 16:24:52

回答

4

由於文件說:

insertNewObjectForEntityForName:inManagedObjectContext:
儘管在方法名「新」字的存在,在引用計數的環境中,你是不是負責釋放返回目的。

所以答案是否定的,你不需要釋放entity變量。

注意這是標準。使用便捷方法時,返回的實例會按照慣例自動釋放,因此您不需要關心它們,當然,除非明確保留它們。

+0

謝謝你,先生,這就是我需要知道的 – Slee 2010-07-12 14:05:11

+0

不客氣:) – Macmade 2010-07-12 14:06:18