1
RubyMotion에서 특정 블록을 사용하고 있으며 외부에서 선언 된 인스턴스 변수에 액세스하려고합니다. 내부에서 변수에 액세스 할 수 없습니다. 여기에 분명한 해결책이 있습니까? 감사!블록 내 변수 액세스
여기에 코드를입니다
@my_var = true
Dispatch::Queue.concurrent.async do
# can't access @my_var here
end
예 그 일을, 감사를 설명하기위한 많은 경우 로컬 복사본을 사용! 흥미로운 사실은 인스턴스 변수가 액세스 할 수없는 동안 로컬 변수에 액세스 할 수 있다는 것입니다. ... – Linus
로컬 변수는 항상 블록 내에서 액세스 할 수 있습니다. 'instance_eval'은 블록 내부의'self'의 값만을 변경합니다. 따라서 첫 번째 예제는'instance_eval' 리시버에'my_var'라는 인스턴스 메소드가 있다면 실패합니다. – Max