我在過去的幾個小時內搜索了幾十個關於Objective-C內存管理主題的帖子,我只是不明白。抱歉。我正竭盡全力!使用executeFetchRequest返回對象的方法
我現在在尋找的是如何從調用'executeFetchRequest'的方法返回對象的答案。
下面是一些代碼...
+ (Player *)loadPlayerWithPredicate:(NSString *)name:(NSInteger)index
{
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Player" inManagedObjectContext:managedObjectContext];
[request setEntity:entity];
// Set filter predicate
NSString *strFilter = [NSString stringWithFormat:@"%@ = %d", name, index];
[request setPredicate:[NSPredicate predicateWithFormat:strFilter]];
// Create the sort descriptors array
NSSortDescriptor *sorter = [NSSortDescriptor sortDescriptorWithKey:name ascending:YES];
[request setSortDescriptors:[NSArray arrayWithObject:sorter]];
NSError *error = nil;
Player *player = nil;
NSArray *array = [managedObjectContext executeFetchRequest:request error:&error];
if ([array count] == 1)
{
player = [array objectAtIndex:0];
//[player retain]; // ???
}
[request release];
return player;
}
但我真正需要的是爲「玩家」對象的方法返回後留下來。
我怎樣才能讓'玩家'在返回後生活?
我應該叫'保留'嗎? (然後我會在接收器中調用「釋放」) 我應該「複製」對象嗎?
我看了所有關於頁頭,複製,新的其他職位的,等
我只需要一個簡單的例子,這樣我就可以從中獲得瞭解。如果你也可以給我看一個接收器調用這個方法的例子,我將不勝感激。
謝謝!