Zacząłem programować aplikację na iPhone'a za pomocą CoreData i próbując uczynić mój kod tak dobrze, jak to tylko możliwe. Dlatego chciałbym, aby uniknąć twardego zakodowane ciągi takie jak:Nazwa atrybutu NSPredicate CoreData
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name == %@", aName];
Zamiast Chciałbym móc napisać coś takiego:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"%K == %@", Person.name, aName];
ten sposób chciałbym uzyskać kompilator, by sprawdzić, czy name
jest własnością podmiotu Person
i unika błędów w pisowni.
Z tym kodem chociaż ja otrzymuję następujący błąd podczas kompilacji: Property name
nie stwierdzono na obiekcie typu Person
Person
jest typu NSManagedObject
i automatycznie generowanego przez Xcode z mojego MyApp.xcdatamodeld
.
name
jest prosty atrybut ciąg podmiotu Person
Mam google i SOed się sporo już na odpowiedź do tej konkretnej kwestii. Próbowałem również używać property_getName
i NSPropertyDescription
przy braku szczęścia do tej pory.
Z góry dziękuję za pomoc,
Joss.
To nie działa w ten sposób, nadal trzeba podać '@" name "do argumentu' @ K'. – Joe