«Нераспознанный селектор, отправленный экземпляру» в строке, устанавливающей переменную в необязательное значение - PullRequest
0 голосов
/ 17 декабря 2018

Я получаю сообщение об ошибке «нераспознанный селектор отправлен в экземпляр» в этой строке:

newAlarm.note = note

внутри моего метода Alarm.swift newAlarm().Вот этот метод:

static func newAlarm(context: NSManagedObjectContext, alarmNumber: Int, timeIntervals: TimeIntervals, note: String, recurrence: RecurrenceOptions) -> Alarm? {

    let startInterval = Alarm.convertToTimeDouble(hour: timeIntervals.hourStartInterval, minute: timeIntervals.minuteStartInterval)
    let endInterval = Alarm.convertToTimeDouble(hour: timeIntervals.hourEndInterval, minute: timeIntervals.minuteEndInterval)

    if endInterval < startInterval {
        os_log("Error: Alarm time endInterval is before startInterval", log: OSLog.default, type: .info)
        return nil
    }
    let newAlarm = Alarm(context: context)
    newAlarm.alarmNumber = alarmNumber
    newAlarm.note = note
    newAlarm.recurrence = recurrence
    newAlarm.notificationUuids = [String]()
    newAlarm.startTimeInterval = startInterval
    newAlarm.endTimeInterval = endInterval

    newAlarm.setNewRandomAlarmTime()

    return newAlarm
}

Как видите, примечание передается и не является необязательным значением.Вот как я объявляю класс Alarm:

class Alarm: NSManagedObject {

    @NSManaged var alarmTime: Double
    @NSManaged var alarmNumber: Int
    @NSManaged var startTimeInterval: Double
    @NSManaged var endTimeInterval: Double
    @NSManaged var note: String
    @NSManaged var notificationUuids: [String]
    @NSManaged var recurrenceIndex: Int
    let NUMBER_OF_ALLOWED_NOTIFICATIONS_CREATED_AT_ONE_TIME = 10

}

Так что поле note также не является обязательным.Я предполагаю, что эта ошибка связана с тем, что поле примечания пустое, и это не так, но я не могу найти в Интернете, почему это будет проблемой.В AddAlarmViewController, непосредственно перед вызовом Alarm.newAlarm(), у меня есть это:

guard let noteText = self.noteTextField.text else {
    os_log("Couldn't unwrap noteText in prepare(for:sender:) in AddAlarmViewController", log: OSLog.default, type: .default)
    return
}

Здесь нет сбоя;Охранное заявление проходит без сбоев.Что говорит мне, что переменная noteText не может быть nil, верно?Так почему я получаю сообщение об ошибке при установке этого поля?Я не получаю эту ошибку при назначении alarmNumber, поэтому не могу себе представить, почему я получаю ее в свойстве note.

Вот полная ошибка:

2018-12-16 20:02:06.592513-0500 RandomAlarm[8528:8134357] -[RandomAlarm.Alarm setNote:]: unrecognized selector sent to instance 0x6000025b0a00
2018-12-16 20:02:06.598032-0500 RandomAlarm[8528:8134357] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[RandomAlarm.Alarm setNote:]: unrecognized selector sent to instance 0x6000025b0a00'
*** First throw call stack:
(
    0   CoreFoundation                      0x0000000106a591bb __exceptionPreprocess + 331
    1   libobjc.A.dylib                     0x00000001046f6735 objc_exception_throw + 48
    2   CoreFoundation                      0x0000000106a77f44 -[NSObject(NSObject) doesNotRecognizeSelector:] + 132
    3   CoreFoundation                      0x0000000106a5ded6 ___forwarding___ + 1446
    4   CoreFoundation                      0x0000000106a5fda8 _CF_forwarding_prep_0 + 120
    5   RandomAlarm                         0x0000000103d85341 $S11RandomAlarm0B0C03newB07context11alarmNumber13timeIntervals4note10recurrenceACSgSo22NSManagedObjectContextC_SiAA04TimeH0CSSAA17RecurrenceOptionsOtFZ + 721
    6   RandomAlarm                         0x0000000103d7ede1 $S11RandomAlarm03AddB14ViewControllerC7prepare3for6senderySo17UIStoryboardSegueC_ypSgtF + 6209
    7   RandomAlarm                         0x0000000103d7f3fa $S11RandomAlarm03AddB14ViewControllerC7prepare3for6senderySo17UIStoryboardSegueC_ypSgtFTo + 218
    8   UIKitCore                           0x000000010934cb24 -[UIStoryboardUnwindSegueTemplate _performWithDestinationViewController:sender:] + 186
    9   UIKitCore                           0x000000010934ca37 -[UIStoryboardUnwindSegueTemplate _perform:] + 83
    10  UIKitCore                           0x000000010934a97b -[UIStoryboardSegueTemplate perform:] + 157
    11  UIKitCore                           0x00000001091a9ecb -[UIApplication sendAction:to:from:forEvent:] + 83
    12  UIKitCore                           0x00000001088ea95b __45-[_UIButtonBarTargetAction _invoke:forEvent:]_block_invoke + 154
    13  UIKitCore                           0x00000001088ea894 -[_UIButtonBarTargetAction _invoke:forEvent:] + 152
    14  UIKitCore                           0x00000001091a9ecb -[UIApplication sendAction:to:from:forEvent:] + 83
    15  UIKitCore                           0x0000000108be50bd -[UIControl sendAction:to:forEvent:] + 67
    16  UIKitCore                           0x0000000108be53da -[UIControl _sendActionsForEvents:withEvent:] + 450
    17  UIKitCore                           0x0000000108be431e -[UIControl touchesEnded:withEvent:] + 583
    18  UIKitCore                           0x00000001091e50a4 -[UIWindow _sendTouchesForEvent:] + 2729
    19  UIKitCore                           0x00000001091e67a0 -[UIWindow sendEvent:] + 4080
    20  UIKitCore                           0x00000001091c4394 -[UIApplication sendEvent:] + 352
    21  UIKitCore                           0x00000001092995a9 __dispatchPreprocessedEventFromEventQueue + 3054
    22  UIKitCore                           0x000000010929c1cb __handleEventQueueInternal + 5948
    23  CoreFoundation                      0x00000001069be721 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
    24  CoreFoundation                      0x00000001069bdf93 __CFRunLoopDoSources0 + 243
    25  CoreFoundation                      0x00000001069b863f __CFRunLoopRun + 1263
    26  CoreFoundation                      0x00000001069b7e11 CFRunLoopRunSpecific + 625
    27  GraphicsServices                    0x000000010e9151dd GSEventRunModal + 62
    28  UIKitCore                           0x00000001091a881d UIApplicationMain + 140
    29  RandomAlarm                         0x0000000103d82587 main + 71
    30  libdyld.dylib                       0x0000000107c97575 start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...