eladb/Parse-NSCoding

Issues with PFFile(NSCoding) after updating to Parse iOS SDK v1.2.19

Closed this issue · 4 comments

Since I updated the Parse iOS SDK to v1.2.19 and the Facebook iOS SDK to v3.13.1 I'm getting exceptions thrown when NSCoding PFFiles. Based on the change log for Parse they fixed a memory leak in this release ... any chance that might be the cause?

Here's the exception I get:

*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<PFFile 0xb83ad10> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key previousState.'

And here's the traceback:

*** First throw call stack:
(
    0   CoreFoundation                      0x039531e4 __exceptionPreprocess + 180
    1   libobjc.A.dylib                     0x0352d8e5 objc_exception_throw + 44
    2   CoreFoundation                      0x039e2fe1 -[NSException raise] + 17
    3   Foundation                          0x0162cd9e -[NSObject(NSKeyValueCoding) setValue:forUndefinedKey:] + 282
    4   Foundation                          0x015991d7 _NSSetUsingKeyValueSetter + 88
    5   Foundation                          0x01598731 -[NSObject(NSKeyValueCoding) setValue:forKey:] + 267
    6   Pesi                                0x001ed8ce -[PFFile(NSCoding) initWithCoder:] + 686
    7   Foundation                          0x0157f01a _decodeObjectBinary + 3498
    8   Foundation                          0x0157e106 _decodeObject + 340
    9   Foundation                          0x0157dfaa -[NSKeyedUnarchiver decodeObjectForKey:] + 181
    10  Pesi                                0x001ee610 -[PFObject(NSCoding) initWithCoder:] + 1024
    11  Foundation                          0x0157f01a _decodeObjectBinary + 3498
    12  Foundation                          0x0157e106 _decodeObject + 340
    13  Foundation                          0x0157dfaa -[NSKeyedUnarchiver decodeObjectForKey:] + 181
    14  Pesi                                0x001ee610 -[PFObject(NSCoding) initWithCoder:] + 1024
    15  Foundation                          0x0157f01a _decodeObjectBinary + 3498
    16  Foundation                          0x015804d7 -[NSKeyedUnarchiver _decodeArrayOfObjectsForKey:] + 2204
    17  Foundation                          0x01580746 -[NSArray(NSArray) initWithCoder:] + 255
    18  Foundation                          0x0157f01a _decodeObjectBinary + 3498
    19  Foundation                          0x015804d7 -[NSKeyedUnarchiver _decodeArrayOfObjectsForKey:] + 2204
    20  Foundation                          0x0158cff1 -[NSDictionary(NSDictionary) initWithCoder:] + 261
    21  Foundation                          0x0157f01a _decodeObjectBinary + 3498
    22  Foundation                          0x0157e106 _decodeObject + 340
    23  Foundation                          0x0157dfaa -[NSKeyedUnarchiver decodeObjectForKey:] + 181
    24  Foundation                          0x0155a6c4 +[NSKeyedUnarchiver unarchiveObjectWithFile:] + 173
    25  Pesi                                0x002118df __34-[TMDiskCache objectForKey:block:]_block_invoke + 335
    26  libdispatch.dylib                   0x03c527b8 _dispatch_call_block_and_release + 15
    27  libdispatch.dylib                   0x03c674d0 _dispatch_client_callout + 14
    28  libdispatch.dylib                   0x03c55047 _dispatch_queue_drain + 452
    29  libdispatch.dylib                   0x03c54e42 _dispatch_queue_invoke + 128
    30  libdispatch.dylib                   0x03c55de2 _dispatch_root_queue_drain + 78
    31  libdispatch.dylib                   0x03c56127 _dispatch_worker_thread2 + 39
    32  libsystem_pthread.dylib             0x03f96dab _pthread_wqthread + 336
    33  libsystem_pthread.dylib             0x03f9acce start_wqthread + 30
)

This isn't the only exception I'm getting. I'm also seeing this:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSObject encodeWithCoder:]: unrecognized selector sent to instance 0x10c13e1c0'

With traceback:

*** First throw call stack:
(
    0   CoreFoundation                      0x0000000103c46495 __exceptionPreprocess + 165
    1   libobjc.A.dylib                     0x00000001037ef99e objc_exception_throw + 43
    2   CoreFoundation                      0x0000000103cd765d -[NSObject(NSObject) doesNotRecognizeSelector:] + 205
    3   CoreFoundation                      0x0000000103c37d8d ___forwarding___ + 973
    4   CoreFoundation                      0x0000000103c37938 _CF_forwarding_prep_0 + 120
    5   Foundation                          0x00000001016b93ef _encodeObject + 1150
    6   Foundation                          0x00000001016ba2c5 -[NSKeyedArchiver _encodeArrayOfObjects:forKey:] + 405
    7   Foundation                          0x00000001016cce35 -[NSDictionary(NSDictionary) encodeWithCoder:] + 897
    8   Foundation                          0x00000001016b93ef _encodeObject + 1150
    9   Pesi                                0x00000001001b59a8 -[PFFile(NSCoding) encodeWithCoder:] + 280
    10  Foundation                          0x00000001016b93ef _encodeObject + 1150
    11  Pesi                                0x00000001001b63cd -[PFObject(NSCoding) encodeWithCoder:] + 1021
    12  Foundation                          0x00000001016b93ef _encodeObject + 1150
    13  Foundation                          0x00000001016ba2c5 -[NSKeyedArchiver _encodeArrayOfObjects:forKey:] + 405
    14  Foundation                          0x00000001016cce35 -[NSDictionary(NSDictionary) encodeWithCoder:] + 897
    15  Foundation                          0x00000001016b93ef _encodeObject + 1150
    16  Foundation                          0x00000001016609b8 +[NSKeyedArchiver archiveRootObject:toFile:] + 238
    17  Pesi                                0x00000001001d8728 __38-[TMDiskCache setObject:forKey:block:]_block_invoke_2 + 376
    18  libdispatch.dylib                   0x0000000103f67851 _dispatch_call_block_and_release + 12
    19  libdispatch.dylib                   0x0000000103f7a72d _dispatch_client_callout + 8
    20  libdispatch.dylib                   0x0000000103f69dcf _dispatch_queue_drain + 481
    21  libdispatch.dylib                   0x0000000103f69b94 _dispatch_queue_invoke + 112
    22  libdispatch.dylib                   0x0000000103f6a9fc _dispatch_root_queue_drain + 81
    23  libdispatch.dylib                   0x0000000103f6ad12 _dispatch_worker_thread2 + 40
    24  libsystem_pthread.dylib             0x00000001042c7ef8 _pthread_wqthread + 314
    25  libsystem_pthread.dylib             0x00000001042cafb9 start_wqthread + 13
)

Let me know if you need any more information.

I'm seeing the same thing with PFFile:

-[NSObject encodeWithCoder:]: unrecognized selector sent to instance 0x178201910
2014-05-22 01:10:22.762 Intro[2590:3607] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSObject encodeWithCoder:]: unrecognized selector sent to instance 0x178201910'

The objects I'm trying to cache have both a PFFile and a PFGeoPoint, so I'm really looking forward to using your latest update with GeoPoint support. Thanks for your help and let me know if I can help debug.
-Rob

screen shot 2014-05-22 at 1 12 25 am

Hello, just wanted to report exact same problem with PFFile.

PR #11 fixes this