次のようなメソッドがある場合:
- (NSDictionary *)removeDataInDictionary:(NSDictionary *)dictionary {
NSMutableDictionary *mutableDictionary = [dictionary mutableCopy];
[mutableDictionary removeObjectForKey:@"key"];
// Return option 1
return [NSDictionary dictionaryWithDictionary:mutableDictionary];
// Return option 2
return (NSDictionary *) mutableDictionary;
}
NSDictionary
オプション1は実際に返されるのに対し、オプション2は実際にNSMutableDictionary
偽装して返されるため、コード的には「より良い」NSDictionary
ですか?