2011-09-26 2 views
0

나는 abt "stringByEvaluatingJavaScriptFromString"을 알고 싶다.stringByEvaluatingJavaScriptFromString의 문제점

사과 문서에 따르면. "The result of running script or nil if it fails."

나는 for 루프 내에서 stringByEvaluatingJavaScriptFromString에 문자열 값을 전달하는 메소드가 있습니다. 그것은 무엇을 할 것인가 ?? 이 모든 문자열 또는 다른 일에 대한 응답을 얻을 것인가? 나는이 같은 일을했다 ...

- (void)loadWithStartPoint:(NSString *)startPoint endPoint:(NSMutableArray *)endPoints options:(UICGDirectionsOptions *)options { 
    for (int idx = 0; idx < [endPoints count]; idx ++) 
    { 
     NSString *msg = [NSString stringWithFormat:@"loadDirections('%@', '%@', %@)", startPoint, [endPoints objectAtIndex:idx], [options JSONRepresentation]]; 
     [googleMapsAPI stringByEvaluatingJavaScriptFromString:msg]; 
    } 
} 

중위는 어떻게해야 모든 문자열에 대한 응답을 얻을 수 있습니까? 나는 그것이 내가 여기서 지나가는 모든 문자열에 대한 응답을 얻어야한다고 생각한다. 내가 잘못하고있는 일을 말해 주시고 제가 통과 한 모든 문자열에 응답을 얻으려면 어떻게해야할까요? 도움이 될 것입니다 .Thnx 사전에.

답변

2

스크립트에서도 오류가 발생하는 경우 기본 문자열이나 다른 것을 반환하도록 javascript 메서드를 만들어야합니다.

function loadDirections() 
{ 

try 
    { 
    //Your code goes here which returns some result 
    } 
catch(err) 
    { 
    var errorFlag = "ERROR"; 
return errorFlag; 
    } 
} 

다음은 논평을

NSString *msg = [NSString stringWithFormat:@"loadDirections('%@', '%@', %@)", startPoint, [endPoints objectAtIndex:idx], [options JSONRepresentation]]; 

if([msg isEqualToString:@"ERROR") 
{ 

//Do some error handling 

} 
else 
{ 

//Your actual code goes here 

} 

다음 업데이트처럼 당신의 목표 C 코드를 변경해야합니다

중 하나 (1) 당신은 변경할 수 있습니다 자바 스크립트 비동기 문제를 해결하기 위해 당신의 디자인 및 첫 번째 호출 (2)에서 응답을 얻은 후에 자바 스크립트 메서드를 호출하거나 다른 NSTimer 실행할 수있는 약간의 시간을 줄 것이다 사용할 수 있습니다. 내 생각에 첫 번째 옵션에 따라 디자인을 변경하면 완벽 할 것입니다.

이 질문 stringByEvaluatingJavaScriptFromString doesn't always seem to work return value javascript UIWebView

+0

내가 properly.I은 내가 응답 통과하고있어 각각의 모든 문자열을 stringByEvaluatingJavaScriptFromString 할 수 방법을 알고 싶어요 그 오류 일을 처리하고있어에서보세요. 전달되는 마지막 문자열에만 응답합니다. – iCoder4777

+0

K 지금은 내가 UR 문제가있어. javascript가 Asynchronous이고 ur obj c for 루프가 javascript 함수가 완전히 실행되기를 기다리지 않기 때문에 발생합니다. 디자인을 조금 변경하여이 문제를 해결할 수 있습니다. 내 대답이 업데이트되었습니다. – sElanthiraiyan

+0

ok ... 조금 더 설명 할 수 있습니까? 어떻게하면 내 돈을 얻을 수 있습니까? 원하는 코드에 대한 코드를 어떻게 바꿀 수 있습니까? – iCoder4777