我正在使用 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:从 'NSArray *__strong' 分配给 'NSMutableArray *' 的不兼容指针类型
我知道findAllWithPredicate语句将返回一个 NSArray;但是我已经看到了使用 NSManagedObject 的示例,这就是 AppointmentInfo 的含义。 第 3 行中的ClientInfo也是一个 NSManagedObject 并且它没有编译器警告。我认为这可能是因为从find 语句返回的只有一 (1) 条记录,但没有区别,一条记录或多条记录。
由于编译器警告,我收到运行错误,还是有其他问题?(我查看了 Google 和 SO,并没有发现任何可以解决此特定问题的内容)。