title: EXC_BAD_ACCESS when calling a block recursively
body: <p>I'm working with the new iOS Spotify SDK. I need to fetch ALL of a user's saved tracks for my application. Results are paginated. As such, I am attempting to use requestNextPageWithSession: callback: recursively until I've fetched all the pages.</p>
  
  <p>First, I make the initial request for saved tracks. This returns the first page successfully, so if there are additional pages, I call getNextPage()</p>
  
  <pre><code>__block SPTListPage *allPages;
  [SPTRequest savedTracksForUserInSession:session callback:^(NSError *error, SPTListPage *firstPage) {
     if (!error) {
        allPages = firstPage;
        if (firstPage.hasNextPage) {
           getNextPage(firstPage);
        }
        else {
           // All tracks were in the first page
        }
     }
  }];
  </code></pre>
  
  <p>getNextPage() is declared as a block above, like so:</p>
  
  <pre><code>Block getNextPage;
  getNextPage = ^(SPTListPage *page) {
      [page requestNextPageWithSession:session callback:^(NSError *error, SPTListPage *nextPage) {
          if (!error) {
              [allPages pageByAppendingPage:nextPage];
              if (nextPage.hasNextPage) {
                  getNextPage(nextPage);
              }
              else {
                  // Got all pages
              }
          }
      }];
  };
  </code></pre>
  
  <p>FYI - I've defined "Block" as such for use globally:</p>
  
  <pre><code>typedef void (^Block)();
  </code></pre>
  
  <p>The issue is the first time I attempt to use getNextPage() recursively within the block, it crashes with EXC_BAD_ACCESS on that line. The stacktrace isn't helpful, but it appears like getNextPage is released. Hoping someone has tackled a similar issue.</p>