2014-09-19 5 views
0

블록 i에서 값을 varible에 할당하는 데이 코드를 사용합니다. ios7 xcode5를 사용하면이 코드가 작동하지 않습니다.ios7에서 _block 변수를 사용합니다.

_Block NSString *temp=Nil;  
[UIView animateWithDuration:0.7f delay:0.03f usingSpringWithDamping:30.0f initialSpringVelocity:30.0f options:UIViewAnimationOptionCurveLinear animations:^{ 
     [vwBottomMain setFrame:CGRectMake(0.0f, vwBottomMain.frame.origin.y-39, vwBottomMain.frame.size.width,vwBottomMain.frame.size.height)]; 
    } completion:^(BOOL finished) { 
     [email protected]"test"; 
    }]; 

답변

1

이 방법의 나머지 부분은 표시하지 않지만 가장 일반적인 문제는 완성 처리기가 비동기이지만 즉시 결과를 기대한다는 것입니다.

어떤 코드가 실행되는지 확인하려면 다음 코드를 실행 해보십시오. 테스트 후에 할당이 발생했음을 증명해야합니다.

__block NSString *temp = nil; 
[UIView animateWithDuration:0.7f delay:0.03f usingSpringWithDamping:30.0f initialSpringVelocity:30.0f options:UIViewAnimationOptionCurveLinear animations:^{ 
    NSLog(@"Animation section"); 
} completion:^(BOOL finished) { 
    NSLog(@"Completion handler"); 
    temp = @"test"; 
}]; 
NSLog(@"String test %@", temp); 
관련 문제