Если у меня есть метод, который выглядит примерно так:
- (NSDictionary *)removeDataInDictionary:(NSDictionary *)dictionary {
NSMutableDictionary *mutableDictionary = [dictionary mutableCopy];
[mutableDictionary removeObjectForKey:@"key"];
// Return option 1
return [NSDictionary dictionaryWithDictionary:mutableDictionary];
// Return option 2
return (NSDictionary *) mutableDictionary;
}
Является ли вариант 1 "лучше" кодовым, потому что он действительно вернет NSDictionary
, в то время как вариант 2 действительно вернет NSMutableDictionary
, замаскированный в NSDictionary
?