Re: Receiver type for instance message is a forward declaration
Re: Receiver type for instance message is a forward declaration
- Subject: Re: Receiver type for instance message is a forward declaration
- From: Carl Hoefs <email@hidden>
- Date: Tue, 10 May 2016 17:01:21 -0700
> On May 10, 2016, at 4:55 PM, Carl Hoefs <email@hidden> wrote:
>
>
>> On May 10, 2016, at 4:39 PM, Quincey Morris <email@hidden> wrote:
>>
>> On May 10, 2016, at 16:22 , Carl Hoefs <email@hidden <mailto:email@hidden>> wrote:
>>>
>>> I will set 'context' and use it in my check instead.
>>
>> Yup, use the context to decide whether to call super *and return* but nothing else. Once you get past that check, don’t call super.
>>
>>> It appears that for some odd reason, once in a blue moon, 'object' and 'keyPath' aren't what they're supposed to be,
>>
>> It’s not odd, if they’re the object and keyPath of a different observation registered by a superclass of your class. You’ve proved it happens!
>>
>
> Now that I've changed things over to use the context value, I get this at the moment I add an NSOperation to the NSOperationQueue:
>
> [uploadQueue addOperation:opn]; <-- Thread 1, EXC_BAD_ADDRESS (code=1, address=0xc)
>
> (lldb) po uploadQueue
> <NSOperationQueue: 0x17e76d20>{name = 'Upload Queue'}
>
> (lldb) po opn
> <NSInvocationOperation: 0x17de5890>
>
> (lldb) bt
> * thread #1: tid = 0x207807, 0x204e3a86 libobjc.A.dylib`objc_msgSend + 6, stop reason = EXC_BAD_ACCESS (code=1, address=0xc)
> frame #0: 0x204e3a86 libobjc.A.dylib`objc_msgSend + 6
> frame #1: 0x2151e27e Foundation`-[NSObject(NSKeyValueObservingPrivate) _changeValueForKeys:count:maybeOldValuesDict:usingBlock:] + 278
> frame #2: 0x214822d0 Foundation`-[NSObject(NSKeyValueObservingPrivate) _changeValueForKey:key:key:usingBlock:] + 68
> frame #3: 0x2152f760 Foundation`__addOperations + 1528
> * frame #4: 0x000ac9b4 iApp`-[AppSetupConfigViewController saveAppSettings:](self=0x17ed4e20, _cmd="saveAppSettings:", sender=0x17ed2200) + 5776 at AppSetupConfigViewController.m:275
> frame #5: 0x25322520 UIKit`-[UIApplication sendAction:to:from:forEvent:] + 80
> frame #6: 0x253224b0 UIKit`-[UIControl sendAction:to:forEvent:] + 64
> frame #7: 0x2530a3ea UIKit`-[UIControl _sendActionsForEvents:withEvent:] + 466
> frame #8: 0x25321dd0 UIKit`-[UIControl touchesEnded:withEvent:] + 616
> frame #9: 0x25321a3e UIKit`-[UIWindow _sendTouchesForEvent:] + 646
> frame #10: 0x2531a3c6 UIKit`-[UIWindow sendEvent:] + 642
> frame #11: 0x252eac84 UIKit`-[UIApplication sendEvent:] + 204
> frame #12: 0x252e9228 UIKit`_UIApplicationHandleEventQueue + 5016
> frame #13: 0x20cdba66 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 14
> frame #14: 0x20cdb656 CoreFoundation`__CFRunLoopDoSources0 + 454
> frame #15: 0x20cd99be CoreFoundation`__CFRunLoopRun + 806
> frame #16: 0x20c28288 CoreFoundation`CFRunLoopRunSpecific + 516
> frame #17: 0x20c2807c CoreFoundation`CFRunLoopRunInMode + 108
> frame #18: 0x22244af8 GraphicsServices`GSEventRunModal + 160
> frame #19: 0x253532c4 UIKit`UIApplicationMain + 144
> frame #20: 0x000c86c6 iApp`main(argc=1, argv=0x00327bd4) + 122 at main.m:14
> (lldb)
2016-05-10 16:58:36.066 iApp[2549:2131821] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '(
"<UITextTapRecognizer: 0x175bb470; state = Possible; delaysTouchesEnded = NO; view = <UITextField 0x175b3410>; target= <(action=oneFingerDoubleTap:, target=<UITextInteractionAssistant 0x175bb3f0>)>; numberOfTapsRequired = 2>",
"<UITapAndAHalfRecognizer: 0x175bb810; state = Possible; view = <UITextField 0x175b3410>; target= <(action=tapAndAHalf:, target=<UITextInteractionAssistant 0x175bb3f0>)>>",
"<UITextTapRecognizer: 0x176c9d90; state = Possible; delaysTouchesEnded = NO; view = <UITextField 0x175b3410>; target= <(action=oneFingerTap:, target=<UITextInteractionAssistant 0x175bb3f0>)>>",
"<UIVariableDelayLoupeGesture: 0x175bbce0; state = Possible; delaysTouchesEnded = NO; view = <UITextField 0x175b3410>; target= <(action=loupeGesture:, target=<UITextInteractionAssistant 0x175bb3f0>)>>"
): An -observeValueForKeyPath:ofObject:change:context: message was received but not handled.
Key path: operations
Observed object: <NSOperationQueue: 0x175464f0>{name = 'Upload Queue'}
Change: {
kind = 1;
}
Context: 0x1c7bb0'
*** First throw call stack:
(0x20d19b8b 0x204d6dff 0x20d19ad1 0x2151cd7d 0x214a3d81 0x21482fe3 0x21482c3b 0x2151e311 0x214822d1 0x2152f761 0xf89b5 0x25322521 0x253224b1 0x2530a3eb 0x25321dd1 0x25321a3f 0x2531a3c7 0x252eac85 0x252e9229 0x20cdba67 0x20cdb657 0x20cd99bf 0x20c28289 0x20c2807d 0x22244af9 0x253532c5 0x1146c7 0x208d4873)
libc++abi.dylib: terminating with uncaught exception of type NSException
BTW, if I remove the addObserver code, this doesn't happen.
-Carl
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden