title: What is the difference between dispatch_queue and NSOperationQueue?
body: <p>I want to understand difference between dispath_queue and NSOperationQueue, when I can to write my code as:</p>
  
  <pre><code>let queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)
      dispatch_async(queue) { () -&gt; Void in
  
          let img1 = Downloader.downloadImageWithURL(imageURLs[0])
          dispatch_async(dispatch_get_main_queue(), {
              self.imageView1.image = img1
          })
  
      }
  </code></pre>
  
  <p>and as:</p>
  
  <pre><code>queue = NSOperationQueue()
  
  queue.addOperationWithBlock { () -&gt; Void in
      let img4 = Downloader.downloadImageWithURL(imageURLs[3])
  
      NSOperationQueue.mainQueue().addOperationWithBlock({
          self.imageView4.image = img4
      })
  
  }
  </code></pre>
  
  <p>So, what is the difference between these 2 blocks? If it's possible, describe it for me, please</p>