Your crash log gives you a lot of information: at first you crashed because you tried to access address 0 in the ur program, and the kernel is not happy.
Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000000
See, you get segmentation, by the way, it starts at address 0x00, so you like the direct pointer 0 / nil. Like this
char* adress = 0; printf("get %p", adress);
You really need to focus on this.
There are three interesting things in the crash stack:
6 com.apple.AppKit 0x00007fff9a7894a7 -[NSTableView textDidChange:] + 377 5 com.apple.Foundation 0x00007fff8e5fe846 -[NSNotificationCenter postNotificationName:object:userInfo:] + 64 0 libsystem_c.dylib 0x00007fff90128650 strlen + 16
[textDidChange] is one of the last calls that caused a crash, by the way, you send a notification when you start [textDidChange]. And the last line that actually crashes: strlen + 16 is because there is something that thinks it can get the length of char from the actual address of the pointer, and actually it is not.
For me, you should verify that you are sending in your notice.
_NSDoUserReplaceForCharRange _NSDoUserDeleteForCharRange
When you delve deeply into the collapse of the stack, it seems that it appears when you make a cell - insert / delete in ur tableViewController. You should check that sometime someone clicks the wrong data or does not use the edit cell as it should be.
So, here is a summary: 1 Someone is editing a tableViewCell, he is not pasting or pasting the code that he is to insert. 2 You send a notification with invalid data inside it. 3 When strlen (invalid_dataStructure) is running, this will crash ur application
By the way, Iβm just guessing, since I donβt know, actually, your code implementation. But I hope this can give you many tips for your debugging session.