2011-01-11 21 views
-1

從內存管理的角度來看,這是一個正確的代碼嗎?Objective C - 使用Core-Data發佈

NSEntityDescription *description = [NSEntityDescription 
             entityForName:@"Event" inManagedObjectContext:managedObjectContext]; 
NSFetchRequest *eventRequest = [[[NSFetchRequest alloc] init] autorelease]; 
[eventRequest setEntity:description]; 
[description release]; 

NSPredicate *eventPredicate = [NSPredicate predicateWithFormat: 
             @"(event == %@)", [item objectForKey:@"event"]]; 
[eventRequest setPredicate:eventPredicate]; 

或者我需要釋放description和eventPredicate?

感謝

回答

1

望着那代碼,你擁有的唯一對象是eventRequest。它正在自動發佈,因此您不需要再次發佈它。

從我所看到的,根據命名規則,所有其他對象不擁有,所以你不需要將他們釋放。

[description release];可能會導致崩潰爲你的地方下了線。

+0

讀取下一個評論,它說這是正確的..所以我不知道答案是什麼.. – xger86x 2011-01-11 15:06:47

-1

您dont't需要爲代碼的任何版本。你應該閱讀Apple's documentation找出原因。

+0

我在您澄清答案後刪除了我的投票。 – Jasarien 2011-01-11 17:02:13