A question about nil in this chapter


An example of this chapter, inside the main method @autoreleasepool block:

    NSMutableArray *employees = [[NSMutableArray alloc] init];
    NSMutableDictionary *executives = [[NSMutableDictionary alloc] init];
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"holder.valueOfAssets > 70"];
    NSArray *toBeReclaimed = [allAssets filteredArrayUsingPredicate:predicate];
    [b]toBeReclaimed = nil;[/b]
    executives = nil;
    employees = nil;

I have a very simple question: I know when I alloc an object, I must release it by nil, but why I need to manually free *toBeReclaimed with nil? Why I do not need to set nil to *predicate?