假设我有一个具有 2 个属性的类:
@interface MyClass ()
@property (strong, nonatomic) NSString *strA;
@property (strong, nonatomic) NSString *strB;
@end
在那个类的某个地方,我有一个方法应该为这些属性之一赋值。问题是 - 该属性将在运行时确定。我该怎么做呢?我想在没有代码复制的情况下做到这一点(可能是一个非常复杂的方法)。例如,这很糟糕:
- (void) mutateProperty:(BOOL)assignToA
{
if (assignToA)
{
self.strA = @"newStr";
}
else
{
self.strB = @"newStr";
}
}
我希望能够完成类似的事情:
- (void) mutateProperty:(BOOL)assignToA
{
NSString *propertyToUse = nil;
if (assignToA)
{
propertyToUse = self.strA;
}
else
{
propertyToUse = self.strB;
}
propertyToUse = @"newStr" //But this will only change the propertyToUse variable's value and not affect the scope outside the method.
}