I was having quite a few random crashes over my dataSource calls for the character tabs' learned skills outline view. After discovering it was an issue that had to do with calling reloadItem: while at the same time a delegate call to get the row height is called, I was throughly frustrated with these dataSource calls altogether.
I took a few hours to convert the Core Data model over to support a bind-able hierarchy. I then set up a tree controller in the character tab's nib and bound it to the newly created entities. These entities actually happen to be transient entities. I didn't want to store redundant information.
Lastly, I decided to take a gamble and have every form of updating be done on the main managed object context. I'm not seeing any multithreading errors but then again, I think I have a pretty decent context lock system in place.

I downloaded the source code and compiled it. I first compiled it for 10.5, the amount of crashing was pretty much every 2-3 min. I am running 10.5.6. I went back an recompiled for 10.4 and the difference was amazing. First there were so many less warnings when i went to compile the code (only 3 vs 11 when i compiled for 10.5). I currently am tracking 8 characters with excellent results. I was able to add ALL 8 characters with out a single crash or instability and I havent even downloaded the newest version since your last post.
ReplyDeleteGood job and keep up the good work. If you need some more detailed feedback let me know.
I'd post some images but its all of my corps major characters.... ;) can't have that info floating around.
ReplyDeleteThanks for the feedback. I appreciate any I get. Kind of funny you mention compiling for 10.4 because before I recently upgraded my iMac to 10.5, I tried getting this program to run on it and all I was getting was bindings related issues.
ReplyDeleteI also find it strange that you get fewer compiler warnings in 10.4. I only get 1 compiling for 10.5 and even that one is trivial as it's for a section I'm only just starting. As far as I remember, I only disabled one warning that has to do with inverse relationships with Core Data.
Either way, I discovered the source of my problems: I was doing a bad job of Core Data context locking. Two different objects were doing a write on the persistent store causing all kinds of problems. I don't see it be a problem any more.