title: "_Unwind_Resume" called upon dead simple fetch request
body: <p>I'm trying to port over some Core Data code over from a test Mac OS application to an iPhone app. I set up a helper method to manage all of the code for the fetches, and everything works great on the Mac OS, but I get this error on the iPhone:</p>
  
  <pre><code>Detected an attempt to call a symbol in system libraries that is not present on the iPhone:
  _Unwind_Resume called from function -[NSSQLAdapter _newSelectStatementWithFetchRequest:ignoreInheritance:] in image CoreData.
  </code></pre>
  
  <p>Here is the code that calls the helper method:</p>
  
  <pre><code>// get authors and title THIS WORKS
  
      NSArray *bookInfoFetchResults = [self getEntitiesByName:kOC_CD_ObjectKey_bookInfo 
                                          usingPredicateValue:@"contentRoot.bookInfo.bookAuthors &gt; \"\"" 
                                    withSubstitutionVariables:[NSDictionary dictionaryWithObjectsAndKeys:nil] 
                                                      inModel:model 
                                                   andContext:context
                                              sortByAttribute:nil];
      int thisResult = 0;
      int lastResult = [bookInfoFetchResults count];
      for (thisResult = 0; thisResult &lt; lastResult; thisResult++) {
          NSManagedObject *currentResult = [bookInfoFetchResults objectAtIndex:thisResult];
          NSLog(@"bookAuthors: %@", [currentResult valueForKey:kOC_CD_ObjectAttribute_bookAuthors]);
          NSLog(@"bookTitle: %@", [currentResult valueForKey:kOC_CD_ObjectAttribute_bookTitle]);
      }
  
      // get chapters THIS DOES NOT WORK
  
      NSArray *chapterFetchResults = [self getEntitiesByName:kOC_CD_ObjectKey_chapter
                                         usingPredicateValue:@"ALL contentRoot.chapters.title &gt; \"\"" 
                                   withSubstitutionVariables:[NSDictionary dictionaryWithObjectsAndKeys:nil] 
                                                     inModel:model 
                                                  andContext:context 
                                             sortByAttribute:kOC_CD_ObjectAttribute_key];
  
      int thisChapterResult = 0;
      int lastChapterResult = [chapterFetchResults count];
      for (thisChapterResult = 0; thisChapterResult &lt; lastChapterResult; thisChapterResult++) {
          NSManagedObject *currentChapterResult = [chapterFetchResults objectAtIndex:thisChapterResult];
          NSLog(@"Chapter %@: %@", [currentChapterResult valueForKey:kOC_CD_ObjectAttribute_number], [currentChapterResult valueForKey:kOC_CD_ObjectAttribute_title]);
      }
  </code></pre>
  
  <p>The helper method (stripped of error-checking, though removing that didn't change the resulting error):</p>
  
  <pre><code>- (NSArray *) getEntitiesByName:(NSString *)entityName usingPredicateValue:(NSString *)predicateValue withSubstitutionVariables:(NSDictionary *)variablesDict inModel:(NSManagedObjectModel *)aModel andContext:(NSManagedObjectContext *)aContext sortByAttribute:(NSString *)sortingAttribute; {
      NSArray *fetchResults;
  
          NSString *fetchRequestTemplateName = [NSString stringWithFormat:@"get_%@", entityName];
  
          NSFetchRequest *fetchRequestTemplate = [[NSFetchRequest alloc] init];
          NSEntityDescription *targetEntityDescription;
          targetEntityDescription = [[aModel entitiesByName] objectForKey:entityName];
          [fetchRequestTemplate setEntity:targetEntityDescription];
  
          // need to find a way to catch an error here in case we give something that isn't right
          // NSInvalidArgumentException: Unable to parse the format string "MQaynH5bXs"
          NSPredicate *predicateTemplate = [NSPredicate predicateWithFormat:predicateValue]; 
          [fetchRequestTemplate setPredicate:predicateTemplate];
          [aModel setFetchRequestTemplate:fetchRequestTemplate forName:fetchRequestTemplateName];
          [fetchRequestTemplate release];
  
          if (variablesDict == nil) {
              variablesDict = [NSDictionary dictionaryWithObjectsAndKeys:nil];
              [variablesDict retain];
          }
  
          NSFetchRequest *fetchRequestToExecute = [aModel fetchRequestFromTemplateWithName:fetchRequestTemplateName substitutionVariables:variablesDict];
  
          NSError *fetchError;
          fetchResults = [aContext executeFetchRequest:fetchRequestToExecute error:&amp;fetchError]; 
  
      if ((sortingAttribute != nil) &amp;&amp; (fetchResults != nil)) {
          NSSortDescriptor *attributeSorter = [[NSSortDescriptor alloc] initWithKey:sortingAttribute ascending:YES];
          fetchResults = [fetchResults sortedArrayUsingDescriptors:[NSArray arrayWithObject:attributeSorter]];
          [attributeSorter release];
      }
  
      return fetchResults;
  
  }
  </code></pre>
  
  <p>The point of failure in the helper method is:</p>
  
  <pre><code>fetchResults = [aContext executeFetchRequest:fetchRequestToExecute error:&amp;fetchError];
  </code></pre>
  
  <p>Breaking out the code from the helper method doesn't work either. </p>
  
  <p>I don't know if it would help, but after stripping out my error-handling code in my helper method, I get this:</p>
  
  <pre><code>2010-11-30 16:31:30.633 OC Flash Card Core 2[19306:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Unsupported predicate (null)'
  *** Call stack at first throw:
  (
      0   CoreFoundation                      0x02655b99 __exceptionPreprocess + 185
      1   libobjc.A.dylib                     0x027a540e objc_exception_throw + 47
      2   CoreData                            0x02381e86 -[NSSQLGenerator generateSQLStatementForFetchRequest:ignoreInheritance:countOnly:] + 1254
      3   CoreData                            0x023816f0 -[NSSQLAdapter _newSelectStatementWithFetchRequest:ignoreInheritance:] + 480
      4   CoreData                            0x02381501 -[NSSQLAdapter newSelectStatementWithFetchRequest:] + 49
      5   CoreData                            0x023813ae -[NSSQLCore newRowsForFetchPlan:] + 430
      6   CoreData                            0x02380b09 -[NSSQLCore objectsForFetchRequest:inContext:] + 297
      7   CoreData                            0x023806fe -[NSSQLCore executeRequest:withContext:error:] + 206
      8   CoreData                            0x0242e91c -[NSPersistentStoreCoordinator executeRequest:withContext:error:] + 1084
      9   CoreData                            0x0237d897 -[NSManagedObjectContext executeFetchRequest:error:] + 359
      10  OC Flash Card Core 2                0x0000360e -[OCContentImporterObj getEntitiesByName:usingPredicateValue:withSubstitutionVariables:inModel:andContext:sortByAttribute:] + 481
      11  OC Flash Card Core 2                0x00002af7 -[OCContentImporterObj testCoreDataIntegrity] + 188
      12  OC Flash Card Core 2                0x00002864 -[OCContentImporterObj importContent] + 88
      13  OC Flash Card Core 2                0x0000252b -[AppDelegate_iPhone application:didFinishLaunchingWithOptions:] + 91
      14  UIKit                               0x002b4f27 -[UIApplication _callInitializationDelegatesForURL:payload:suspended:] + 1163
      15  UIKit                               0x002b73b0 -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 346
      16  UIKit                               0x002c13ec -[UIApplication handleEvent:withNewEvent:] + 1958
      17  UIKit                               0x002b9b3c -[UIApplication sendEvent:] + 71
      18  UIKit                               0x002be9bf _UIApplicationHandleEvent + 7672
      19  GraphicsServices                    0x02f35822 PurpleEventCallback + 1550
      20  CoreFoundation                      0x02636ff4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 52
      21  CoreFoundation                      0x02597807 __CFRunLoopDoSource1 + 215
      22  CoreFoundation                      0x02594a93 __CFRunLoopRun + 979
      23  CoreFoundation                      0x02594350 CFRunLoopRunSpecific + 208
      24  CoreFoundation                      0x02594271 CFRunLoopRunInMode + 97
      25  UIKit                               0x002b6c6d -[UIApplication _run] + 625
      26  UIKit                               0x002c2af2 UIApplicationMain + 1160
      27  OC Flash Card Core 2                0x00001ce0 main + 102
      28  OC Flash Card Core 2                0x00001c71 start + 53
  )
  terminate called after throwing an instance of 'NSException'
  </code></pre>
  
  <p>But, again, all of this worked flawlessly in the Mac OS. I've tried searching for <code>_Unwind_Resume</code> but it seems to be a bug on Apple's part, and there are at least a dozen different ways to hit it and a dozen different ways to resolve it. The only differential that I can think of is that one attempt only has one instance in the CD store (intentionally so) and the second, the trouble one, can have many. Any ideas?</p>