【问题标题】:Unrecognized selector sent to Core Data causes app crash发送到 Core Data 的无法识别的选择器导致应用程序崩溃
【发布时间】:2013-01-01 16:01:03
【问题描述】:

我有一个 iPad 应用程序,使用 XCode 4.5、Storyboards、iOS 6 和 MagicalRecord。此代码导致错误,我不明白为什么。 aApptStartselectedStartDate 都定义为 DateTime。那么,是什么原因造成的呢?

这是有问题的代码:

- (IBAction)saveAppointment:(UIButton *)sender {

    NSManagedObjectContext *localContext = [NSManagedObjectContext MR_contextForCurrentThread];
    AppointmentInfo *newAppointment = [AppointmentInfo createEntity];  //  create the entity

    NSLog(@"Selected start Date (save): %@", [self formatSelectedDate: selectedStartDate]); 

    newAppointment.aApptStart = selectedStartDate;  //  <------  causing the error
    newAppointment.aApptEnd= selectedEndDate;
    newAppointment.aTech = selectedTech;

    [localContext MR_saveNestedContexts];
}

这是我得到的错误:

由于未捕获的异常而终止应用程序 'NSInvalidArgumentException',原因:'-[NSManagedObject setAApptStart:]: 无法识别的选择器发送到实例 0xee85dd0'

【问题讨论】:

    标签: objective-c ios core-data


    【解决方案1】:

    那么,是什么原因造成的呢?

    错误表明 AppointmentInfo 中没有该名称的属性。

    那么,您的 NSManagedObject 子类 (AppointmentInfo) 是否声明了属性 aApptStart?另外,您的实体是否存在相应的属性(如果该属性已实现@dynamically)?

    我想它会......也许是一个错字? 能否展示 AppointmentInfo 的接口和实现?

    【讨论】:

    • 我正在重组我的答案,这有点乏味,因为我在我的 ipad 上。直到现在才看到你的评论。什么是 undeeded(这甚至是什么意思),什么不能编译?你的答案在哪里?没有更多细节很难给出具体答案。
    • “没有更多细节很难给出具体答案”>> 是的,因此这不是一个答案:)
    • 马里奥...确实是错字...非常感谢...祝您和您的家人新年快乐...
    • @Daij-Djan 这是一个答案,因为我的猜测是一个错字。我承认我并没有完全完成我的答案的格式化和结构化,但它回答了这个问题(“是什么导致了这个错误”。答案:未声明属性,以及 -guessed- 原因,一个错字)。你很快就会投反对票:)
    【解决方案2】:

    显然您的[AppointmentInfo createEntity] 没有返回AppointmentInfo 类型的对象,但NSManagedObjectNSManagedObject 没有为setAApptStart 提供选择器,这意味着没有属性aApptStart 的设置器。

    您的+(AppointmentInfo*) createEntity 到底长什么样?

    【讨论】:

      猜你喜欢
      • 2016-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-08
      • 2023-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多