Objective-C では、多くの Mutable オブジェクトを作成し、それらを非可変オブジェクトとして返すことに気付きました。私がここでやっている方法は、単に良い習慣NSMutableSet
として返すだけですか? NSSet
コピーを作成するように指定する必要があるのではないかと考えていました。
/** Returns all the names of the variables used in a given
* program. If non are used it returns nil */
+ (NSSet *)variablesUsedInProgram:(id)program
{
NSMutableSet* variablesUsed = [[NSMutableSet alloc]init];
if ([program isKindOfClass:[NSArray class]]) {
for (NSString *str in program)
{
if ([str isEqual:@"x"] || [str isEqual:@"y"] || [str isEqual:@"a"] || [str isEqual:@"b"])
[variablesUsed addObject:str];
}
}
if ([variablesUsed count] > 0) {
return variablesUsed;
} else {
return nil;
}
}