2011-10-13 13 views
6

Ho provato quanto segue con un NSPredicate e non sto ottenendo i risultati che ci si aspetterebbe:sta avendo un NSFetchRequest con NSPredicate supportato in MonoTouch

NSFetchRequest request = new NSFetchRequest(); 
request.Entity = NSEntityDescription.EntityForName("Entity", managedObjectContext); 

NSSortDescriptor sort = new NSSortDescriptor ("date", false); 
request.SortDescriptors = new NSSortDescriptor[1] { sort }; 
request.Predicate = NSPredicate.FromFormat("stringProperty == %@", new NSObject[1]{new NSString("someString")}); 

error = null; 
NSObject[] results = managedObjectContext.ExecuteFetchRequest (request, out error); 

È NSPredicate supportato nella attuale versione stabile di MonoTouch (5.0) o sto facendo qualcosa di sbagliato?

+0

Difficile dire con un frammento. È necessario inviare un test case indipendente –

+0

Grazie per la risposta. Lo snippet sopra riportato funziona alla grande senza che la linea stabilisca il predicato. Non appena ho impostato il predicato, non ottengo alcun risultato dal recupero (quando mi aspetto dai dati e dal predicato che viene impostato). Ho pensato che entrambi i predicati non sono ancora supportati o sto creando il predicato in modo errato. Ci sono campioni di utilizzo di un predicato in MonoTouch? – cmour

+0

Ho avuto una rapida occhiata e non ho trovato alcun codice di esempio, quindi potrebbe essere un bug (non sembra essere molto usato). Potresti fornirci (qui o compilando una segnalazione di bug su http://bugzilla.xamarin.com) un piccolo caso di test auto-indipendente in modo che possiamo provare a individuare il problema? – poupou

risposta

0

wow, stai davvero risparmiando righe di programmazione qui. E 'difficile dire con quel frammento, ma ... mio miglior suggerimento è quello di rompere quelle linee in più linee, come

NSPredicate *myPredicate = ... 
if (myPredicate) { 
NSLog (@"Predicate exists"); 
} 

e andare avanti come quella riga per riga per assicurarsi che stai ricevendo il feedback giusto Questo è quello che faccio. Potrebbe aiutare un po '

+0

Quindi, stai dicendo che l'impostazione di un predicato su una richiesta di recupero funziona per te in MonoTouch? – cmour