Я использую MagicalRecord (MR) для удаления всех записей, принадлежащих выбранному клиенту (я успешно удаляю запись клиента, а затем перехожу к записям о встречах для этого клиента). При этом я получаю ошибку.
[_PFArray MR_deleteInContext:]: unrecognized selector sent to instance
Вот код вместе с соответствующими определениями:
// set up predicate using selectedClientKey
NSManagedObjectContext *localContext = [NSManagedObjectContext MR_contextForCurrentThread];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"aClientKey == %@", selectedClientKey];
ClientInfo *clientSelected = [ClientInfo MR_findFirstWithPredicate:predicate inContext:localContext];
if(clientSelected) {
[clientSelected MR_deleteInContext:localContext];
[localContext MR_saveToPersistentStoreAndWait];
}
// delete clients appointments...
predicate = [NSPredicate predicateWithFormat:@"aApptKey == %@", selectedClientKey]; // use client key
AppointmentInfo *apptSelected = [AppointmentInfo MR_findAllWithPredicate:predicate inContext:localContext];
if(apptSelected) {
[apptSelected MR_deleteInContext:localContext];
[localContext MR_saveToPersistentStoreAndWait];
}
Вот определение AppointmentInfo:
@interface AppointmentInfo : NSManagedObject
@property (nonatomic, retain) NSString * aApptKey;
@property (nonatomic, retain) NSDate * aEndTime;
@property (nonatomic, retain) NSString * aServiceTech;
@property (nonatomic, retain) NSDate * aStartTime;
В инструкции findAllWithPredicate я получаю следующее предупреждение компилятора:
CalendarViewController.m:80:43: Несовместимые типы указателей, назначенные «NSMutableArray *» из «NSArray *__strong»
Я понимаю, что оператор findAllWithPredicate вернет NSArray; однако я видел примеры использования NSManagedObject, что и представляет собой AppointmentInfo. ClientInfo в 3-й строке также является NSManagedObject и не содержит предупреждений компилятора. Я подумал, что это может быть из-за того, что из оператора find была возвращена только одна (1) запись, но это не имеет значения, одна запись или несколько записей.
Я получаю ошибку запуска из-за предупреждения компилятора или что-то еще не так? (Я просмотрел Google и SO и не нашел ничего, что касалось бы этой конкретной проблемы).