Calling loadObjectWithID: on a KCSLinkedAppdataStore crashes app
s
sairasamdani
started a topic
over 6 years ago
I am trying to load a collection based on id. Calling loadObjectWithID: crashes app. It was working fine two days before.
Here is the crash log
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSDictionary initWithDictionary:copyItems:]: dictionary argument is not an NSDictionary'
It looks like there was something unexpected the metadata. Can you load the object through the API console and share the JSON output?
s
sairasamdani
said
over 6 years ago
I can see the entry in my table in console. But if I use Filter field to load only one entry on basis of _id, I see empty console. Is this what you were asking me to do?
M
Mike
said
over 6 years ago
Not quite. In the API Console Add-On, you can run various REST requests. Select the collection and perform a GET on that specific _id. The JSON version of the object should show up in the results pane. That is what I am looking for.
s
sairasamdani
said
over 6 years ago
Here is the response for adding header "_id" and value is "53ce1935ba823db42c087702"
sairasamdani
Here is the crash log
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSDictionary initWithDictionary:copyItems:]: dictionary argument is not an NSDictionary'
*** First throw call stack:
(
0 CoreFoundation 0x000000010395a495 __exceptionPreprocess + 165
1 libobjc.A.dylib 0x000000010034a99e objc_exception_throw + 43
2 CoreFoundation 0x0000000103941086 -[NSDictionary initWithDictionary:copyItems:] + 854
3 CoreFoundation 0x0000000103940d11 +[NSDictionary dictionaryWithDictionary:] + 49
4 MyApp 0x000000010008dc8d -[KCSMetadata initWithKMD:acl:] + 333
5 MyApp 0x000000010006d1ec populate + 1964
6 MyApp 0x000000010006e5d6 +[KCSObjectMapper populateObjectWithLinkedResources:withData:resourceDictionary:] + 118
7 MyApp 0x000000010006e70a +[KCSObjectMapper makeObjectWithResourcesOfType:withData:withResourceDictionary:] + 266
8 MyApp 0x000000010008a193 -[KCSLinkedAppdataStore manufactureNewObject:resourcesOrNil:] + 115
9 MyApp 0x0000000100090c1a -[KCSBackgroundAppdataStore handleLoadResponse:error:completionBlock:] + 842
10 MyApp 0x0000000100091b87 __86-[KCSBackgroundAppdataStore doLoadObjectWithID:withCompletionBlock:withProgressBlock:]_block_invoke + 55
11 MyApp 0x000000010008133d -[KCSRequest2 callCallback:request:] + 1981
12 MyApp 0x0000000100080537 -[KCSRequest2 requestCallback:request:] + 1111
13 MyApp 0x000000010008005e __20-[KCSRequest2 start]_block_invoke_3 + 46
14 Foundation 0x000000010342a063 __103+[__NSOperationInternal _observeValueForKeyPath:ofObject:changeKind:oldValue:newValue:indexes:context:]_block_invoke96 + 16
15 libdispatch.dylib 0x0000000103d73851 _dispatch_call_block_and_release + 12
16 libdispatch.dylib 0x0000000103d8672d _dispatch_client_callout + 8
17 libdispatch.dylib 0x0000000103d76b27 _dispatch_root_queue_drain + 380
18 libdispatch.dylib 0x0000000103d76d12 _dispatch_worker_thread2 + 40
19 libsystem_pthread.dylib 0x00000001040d3ef8 _pthread_wqthread + 314
20 libsystem_pthread.dylib 0x00000001040d6fb9 start_wqthread + 13
)
libc++abi.dylib: terminating with uncaught exception of type NSException
My code looks somewhat like:
[[MyManager sharedStore] loadObjectWithID:_id withCompletionBlock:^(NSArray *objectsOrNil, NSError *errorOrNil) {
if (!errorOrNil && objectsOrNil.count > 0) {
[[MySharedData sharedInstance] setObject: objectsOrNil[0]];
}
else if (!errorOrNil){
[[MySharedData sharedInstance] setObject: nil];
}
} withProgressBlock:nil];
Any help will be highly appreciated. Thanks!