2011-03-07 73 views
1

我过去两天一直在尝试这些方法,并在同一点卡住。 我真的很感谢这方面的帮助。 是否可以在加载didFinishLaunchingWithOptions下的应用程序时添加两个不同的NSOperation。 就像我有两个不同的XML URL解析数据并使用NSOperation来添加数据库中的数据。 当前,当我解析两个不同的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 2011-03-07 18:16:12

+0

下一次请将代码添加到您的问题。代码不应该发布在评论中,因为你看到它是不可读的。 – 2011-03-07 18:20:12

+0

你是如何创建你的队列? – 2011-03-07 18:21:56

回答

0

好的,为了防止更多的不答复和红点你我会写一个通用的工作流程。

这是我将如何解决这个问题。我会创建一个既能下载又能解析的NSOperation。我会忽略“NSOperation + Networking =你做错了!” - 现在说Sayers。

创建一个带有url和委托的NSOperation(这可以是将显示数据的视图控制器),同步获取数据(即NSData *data = [NSData dataWithContentsOfURL:url];)然后在数据到达时解析数据。完成后,您告诉代表数据已准备就绪。

这将消除稍微更复杂的任务来区分任意数量的xml下载。因为(我认为)这是你的问题。其中一个完成后,您已将两个NSOperations添加到队列中。所以另一个运行的数据不完整。如果我不得不猜测,我会说你也混合了两者的下载数据。

将NSOperationQueue添加到您的appDelegate中,并将NSOperations添加到此队列中。


作为一个侧面说明,当你有问题的意见或补充时,你应该把它们放在问题中。答案仅用于解答问题。如果你想多发一次,并且喜欢与其他开发者的对话,你应该看看论坛。例如thisthis但还有更多。但他们通常会吮吸,没有人(夸张)在那里给出了很好的答案,因为没有人想要阅读3页上的50个帖子来获取图片。这就是为什么我们试图将所有相关问题都纳入问题的原因。想要回答你的问题的人更容易。

因此,下次如果有人要求更多信息或代码,请编辑问题并在其中添加信息。如果你不回答问题,你永远不应该发布答案。

+0

非常感谢您的回答。我从来没有想过,在写答案和提问的时候会有区别,因为我无法在评论部分中找到答案。所以我想添加回答部分。但我会尝试添加一个委托与viewcontroller。但还有一个问题,我是iPhone编程的新手,不确定应该如何将我的nsoperationqueue添加到我的appdelegate。我已经使用了seismicXML示例,但它仅适用于一个URL连接。 – lifemoveson 2011-03-08 18:34:32

0

@fluchtpunkt:

我有具有其中我分别填充它们中的每一个数据的两个不同的XML网址。两个XML文件结构都不同,因此我有两个不同的NSOperation来解析文件并将它们添加到它们的数据库中。 我不知道如何在我的viewcontroller中添加NSOperation,如果可能的话,这将对我有很大的帮助,因为我对这两个URL有两个不同的视图控制器。

相关问题