エラーや警告なしで動作する非ARCのこのコードがあります:
- (void)addTarget:(id)target action:(SEL)action forControlEvents:(UIControlEvents)controlEvents
{
// Only care about value changed controlEvent
_target = target;
_action = action;
}
- (void)setValue:(float)value
{
if (value > _maximumValue)
{
value = _maximumValue;
} else if (value < _minimumValue){
value = _minimumValue;
}
// Check range
if (value <= _maximumValue & value >= _minimumValue)
{
_value = value;
// Rotate knob to proper angle
rotation = [self calculateAngleForValue:_value];
// Rotate image
thumbImageView.transform = CGAffineTransformMakeRotation(rotation);
}
if (continuous)
{
[_target performSelector:_action withObject:self]; //warning here
}
}
ただし、プロジェクトを ARC に変換した後、次の警告が表示されます。
「Perform Selector は、そのセレクターが不明であるため、リークを引き起こす可能性があります。」
それに応じてコードを修正する方法についてのアイデアをいただければ幸いです..