0

我有一个验证方法,通过它我可以分析特定变量是否通过验证标准。

这是代码:

-(void)scaleTextView:(UIPinchGestureRecognizer *)pinchGestRecognizer{

CGFloat scale = pinchGestRecognizer.scale;
CGFloat lastScale;
lastScale = 1.0;
if([pinchGestRecognizer state] == UIGestureRecognizerStateEnded) {
    // Reset last scale
    lastScale = 1.0;
    return;
}
if ([pinchGestRecognizer state] == UIGestureRecognizerStateBegan ||
    [pinchGestRecognizer state] == UIGestureRecognizerStateChanged) {

    CGFloat pinchscale = [pinchGestRecognizer scale];
    CGFloat scaleDiff = pinchscale - lastScale;

    if (scaleDiff < 0){
        scaleDiff *= 2; // speed up zoom-out 
        [self zoomSymbol:selectObject Scale:-scale];
    }
    else{
        scaleDiff *= 0.7; // slow down zoom-in 
        [self zoomSymbol:selectObject Scale:scale];
        lastScale = pinchscale;
    }
}    
} 

我收到警告'存储到'lastScale'的值'从未读取'和'存储到'scaleDiff'的值'从未读取'有人能解释一下我的问题是什么吗?谢谢大家!

4

1 回答 1

3

lastScale是一个局部变量,并且永远不会适用于gestureRecognizer 的 state 属性的所有情况。您应该改用static变量。

static CGFloat lastScale = 1.0;
...
于 2013-06-21T08:47:21.127 回答