2011-03-07 4 views
1

나는 지난 2 일 동안 이것을 시도해 왔으며 같은 지점에서 멈추었습니다. 정말 이것에 대한 도움을 주시면 감사하겠습니다. didFinishLaunchingWithOptions에서 응용 프로그램을로드하는 동안 두 개의 다른 NSOperations를 추가 할 수 있습니까? 마찬가지로 데이터를 구문 분석하고 NSOperation을 사용하여 DB에 데이터를 추가하는 두 개의 서로 다른 XML URL이 있습니다. 현재 두 개의 서로 다른 URL을 구문 분석하고 NSOperations를 사용할 때 첫 번째 NSOperationQueue는 첫 번째 URL의 요소를 가지고 있습니다.이 요소는 끝나면 해제되지 않습니다.didFinishLaunchingWithOptions에서 두 개의 다른 NSOperations를 추가 할 수 있습니까?

아무도 도와 드릴 수 있습니까?

Sagos


static NSString *string1 = @"abc.com/abc1.xml";; 
NSURLRequest *URL1 =[NSURLRequest requestWithURL:[NSURL URLWithString:string1]]; 
self.URL1Connection =[[[NSURLConnection alloc] initWithRequest:URL1 delegate:self] autorelease]; 
static NSString *string2 = @"abc.com/abc2.xml";; 
NSURLRequest *URL2 =[NSURLRequest requestWithURL:[NSURL URLWithString:string2]]; 
self.URL2Connection =[[[NSURLConnection alloc] initWithRequest:URL2 delegate:self] autorelease]; 
+0

"첫 번째 NSOperationQueue는 첫 번째 URL의 요소를가집니다"는 것은 무엇을 의미합니까? 'NSOperationQueue'는 데이터 객체가 아닌 연산을 포함해야합니다.무슨 일이 일어나는지 이해하기가 어렵 기 때문에 일부 코드를 게시하십시오. – hoha

+0

다음 번에 질문에 코드를 추가하십시오. 코드는 읽을 수 없으므로 주석에 절대 게시해서는 안됩니다. –

+0

대기열을 어떻게 만드나요? –

답변

0

좋아, 답글과 빨간색 점을 방지하기 위해 일반적인 작업 과정을 작성합니다.

다음은이 문제를 해결하는 방법입니다. 다운로드 및 구문 분석을 모두 수행하는 NSOperation을 작성합니다. 그리고 나는 "NSOperation + Networking = 당신은 그것을 잘못하고있다!"라고 무시할 것입니다. - 지금은 말입니다.

url과 위임자 (데이터를 표시하는 뷰 컨트롤러가 될 수 있음)를 사용하여 NSOperation을 만들고 데이터의 동기 가져 오기 (예 : NSData *data = [NSData dataWithContentsOfURL:url];)를 수행 한 다음 데이터가있을 때 파싱합니다. 작업이 완료되면 대리인에게 데이터 준비가되었음을 알립니다.

이렇게하면 임의의 수의 xml 다운로드를 구별하는 약간 더 복잡한 작업이 제거됩니다. 왜냐하면 (제 생각에는) 이것이 당신의 문제였습니다. 둘 중 하나가 완료되면 대기열에 두 개의 NSOperations를 추가했습니다. 그래서 다른 하나는 불완전한 데이터로 실행 중이었습니다. 추측을해야만한다면 다운로드 한 데이터를 혼합했다고 말할 수 있습니다.

NSOperationQueue를 appDelegate에 추가하고이 대기열에 NSOperations를 추가하십시오.


메모로 의견이나 추가 사항이있을 때 질문에 넣어야합니다. 대답은 질문에 대한 답변입니다. 두 번 이상 게시하고 다른 개발자와의 대화가 마음에 들면 포럼을 찾아야합니다. 예를 들어 this 또는 this이지만 더 많은 정보가 있습니다. 그러나 아무도 3 페이지의 50 개의 게시물을 읽고 사진을 얻고 싶지 않으므로 그들은 보통 빨고, 아무도 (과장) 아무도 대답하지 않습니다. 그것이 우리가 관련있는 모든 것을 질문에 넣는 이유입니다. 귀하의 질문에 대답하기를 원하는 사람들에게는 훨씬 쉽습니다.

다음 번에 누군가가 더 많은 정보 나 코드를 요청하면 질문을 편집하고 거기에 정보를 추가하십시오. 질문에 대답하지 않으면 답을 게시해서는 안됩니다.

+0

답변 해 주셔서 감사합니다. 나는 정말로 당신의 대답을 쓰는 것과 제 질문을 묻는 것 사이에 구별이있을 것이라고 생각하지 않았습니다. 제 대답을 코멘트 부분에 맞출 수 없었기 때문입니다. 그래서 나는 대답 섹션에 추가 할 생각. 하지만 viewcontroller 함께 대리자를 추가하려고합니다. 하지만 한 가지 더 질문합니다. 저는 iPhone 프로그래밍에 익숙하지 않고 appdelegate에 내 nsoperationqueue를 추가해야하는지 잘 모릅니다. seismicXML 예제를 사용했지만 하나의 URL 연결에만 사용했습니다. – lifemoveson

0

@fluchtpunkt :

내가 따로 채울 그들의 각 하나에 데이터가 두 개의 서로 다른 XML URL을 가지고있다. XML 파일 구조가 다르므로 두 개의 다른 NSOperations 파일을 통해 구문 분석하고 자신의 데이터베이스에 추가 할 수 있습니다. NSOperation을 내 viewcontroller에 추가하는 방법을 잘 모르겠습니다. 가능한 경우 두 URL에 서로 다른 두 View Controller가 있으므로 큰 도움이됩니다.

관련 문제