Bir değişkeni kullanarak (NSXMLParser öğesinin parçası olarak) bir yüklemeyi temel alarak bir nesne almayı deneyen bir yöntem yazmaya çalışıyorum. Kod şöyle görünür:Temel Verilerde Öğe adı için bir değişken kullanma
sınıfta tanımlanan bu değişkenleri vardır:
@property (strong, nonatomic) NSManagedObjectContext *managedObjectContext;
@property (strong, nonatomic) NSString *model;
@property (strong, nonatomic) NSString *element;
Şimdi yöntemde, böyle isteğini kurmak: Artık
NSFetchRequest *request = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:self.model inManagedObjectContext:self.managedObjectContext];
[request setEntity:entity];
meydan - ne yapabilmek istiyorum geçerli:
// DOES NOT WORK
[request setPredicate:[NSPredicate predicateWithFormat:@"%@ == %@", self.element,string]];
B ut sonuç vermez. Bazı mucking sonra bu çalışır fark:
if ([self.element isEqualToString:@"name"]) {
[request setPredicate:[NSPredicate predicateWithFormat:@"name == %@", string]];
}
Bu benim self.element
(? Sanırım) doğru ayarlanmış söylüyor ama yüklem ifade sol tarafını sevmediğini değişken olmak.
Ben de denedim:
[request setPredicate:[NSPredicate predicateWithFormat:@"%s == %@", [self.element UTF8String],string]];
... bir dize tercih belki sadece görmek için. Bu işi ben de yapamam.
Mümkün mü yapmaya çalıştığım şey bu mu? Çekirdek Veri dokümantasyonunu olabildiğince okudum ve bu şekilde yapan herhangi bir örnek kod bulamıyorum, ancak bunun mümkün olmadığını söylemek için hiçbir şey bulamadım.
DÜZENLEME: ve şimdi çalışma kodu: Daha önce yapmadıysanız
[request setPredicate:[NSPredicate predicateWithFormat:@"%K == %@", self.element,string]];
Bu mükemmel, teşekkürler. Kodumu işleyen özel bilgi parçası, argümanı bir değerden ziyade anahtar olarak ele alan% K değişkenidir. Şimdi çalışıyor =) – valdarin
Bir şey değil :) Çekirdek Veriler ve Tahminler harika teknolojiler ve onlarla her şeyi yapabilirsiniz ... – matteodv