Основные данные - Cra sh при прослушивании уведомления NSManagedObjectContextDidSave - PullRequest
0 голосов
/ 04 августа 2020

Увидеть странную дрянь sh во время прослушивания

   NotificationCenter.default.addObserver(self, selector: #selector(contextDidSave(_:)), name: .NSManagedObjectContextDidSave, object: nil)

   @objc private func contextDidSave(_ notification: Notification) {
       print(notification)
   }

However, keeping below line and calling something else inside it not causing any issues.
Below code will work fine as we are not printing or consuming objects

   if let updatedObjects = notification.userInfo?[NSUpdatedObjectsKey] as? Set<User>, !updatedObjects.isEmpty { 
        myMethod()
   }

Уже отлажено с помощью NSZombiesEnabled, InstrumentsWithCoreData, Exception Breakpoints, ThreadSanatizer, «Аргументы, переданные при запуске» в -com.apple.CoreData.ConcurrencyDebug 1

Невозможно понять, почему это происходит. Однако я подумал, что это свойство, поэтому я распечатал все свойство 1 к 1, у меня все сработало.

Насколько мне известно, это происходит из-за комбинации Swift и Obj- C

Это огромный проект, поэтому я не уверен, что можно сделать? Есть ли способ получить дополнительную информацию об объекте через его ссылочный мат, например имя объекта или другую информацию?

** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFBoolean objectID]: unrecognized selector sent to instance 0x7fff80634470'
*** First throw call stack:
(
    0   CoreFoundation                      0x00007fff23e3de6e __exceptionPreprocess + 350
    1   libobjc.A.dylib                     0x00007fff512539b2 objc_exception_throw + 48
    2   CoreFoundation                      0x00007fff23e5eb94 -[NSObject(NSObject) doesNotRecognizeSelector:] + 132
    3   CoreFoundation                      0x00007fff23e4286c ___forwarding___ + 1436
    4   CoreFoundation                      0x00007fff23e44b58 _CF_forwarding_prep_0 + 120
    5   CoreData                            0x00007fff23a816c9 -[NSManagedObject _descriptionValues] + 1566
    6   CoreData                            0x00007fff23a819f1 -[NSManagedObject description] + 261
    7   CoreFoundation                      0x00007fff23e60600 -[NSSet descriptionWithLocale:indent:] + 416
    8   CoreFoundation                      0x00007fff23e37858 -[NSDictionary descriptionWithLocale:indent:] + 1416
    9   Foundation                          0x00007fff259698c9 _NSDescriptionWithLocaleFunc + 55
    10  CoreFoundation                      0x00007fff23dc7281 __CFStringAppendFormatCore + 12737
    11  CoreFoundation                      0x00007fff23dc8ea5 _CFStringCreateWithFormatAndArgumentsAux2 + 133
    12  CoreData                            0x00007fff23a324a4 _NSCoreDataLog + 248
    13  CoreData                            0x00007fff239f7e80 -[NSManagedObjectContext(_NSInternalAdditions) _didSaveChanges] + 2893
    14  CoreData                            0x00007fff239ee7d6 -[NSManagedObjectContext save:] + 4166
    15  ***********                          0x00000001076e8db3 __31-[MyStorageManager saveContext]_block_invoke + 83
    16  CoreData                            0x00007fff23a0338d developerSubmittedBlockToNSManagedObjectContextPerform + 154
    17  libdispatch.dylib                   0x000000010f252e8e _dispatch_client_callout + 8
    18  libdispatch.dylib                   0x000000010f260d97 _dispatch_main_queue_callback_4CF + 1149
    19  CoreFoundation                      0x00007fff23da1869 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 9
    20  CoreFoundation                      0x00007fff23d9c3b9 __CFRunLoopRun + 2041
    21  CoreFoundation                      0x00007fff23d9b8a4 CFRunLoopRunSpecific + 404
    22  GraphicsServices                    0x00007fff38c39bbe GSEventRunModal + 139
    23  UIKitCore                           0x00007fff49325968 UIApplicationMain + 1605
    24   ***********                          0x00000001074dc882 main + 146
    25  libdyld.dylib                       0x00007fff520ce1fd start + 1
    26  ???                                 0x0000000000000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
...