I released ReceiptWallet 2.0 on Tuesday and the reception has been pretty good. Unfortunately, as with any major upgrade, there are bound to be issues. I’ve been handling the support issues on a case by case basis, and I’ve been scratching my head trying to figure out what could have caused the issues. This afternoon I received a phone call from my uncle who just upgraded and now his data was empty. The good thing about the upgrade is the chances of destroying the data are slim; ReceiptWallet, in most cases, can’t find it. Having visited my uncle back in November and knowing how his system was setup, it made getting him up and running much easier. Then, this evening, it dawned on me the problem, so I tested my theory. In ReceiptWallet and DocumentWallet, I had a preference that let users move the ReceiptWallet or DocumentWallet data folder as people wanted to put it in Documents or on another hard drive. So I moved my data in ReceiptWallet 1.5.2, upgraded to ReceiptWallet 2.0 and saw that ReceiptWallet didn’t find my data. Hmmm…at least I could reproduce it.
I started poking at my code and within a few minutes, saw this:
[[NSUserDefaults standardUserDefaults] objectForKey:kOldDataLocation];
That’s the whole line. Anyone who knows Cocoa programming knows that this does nothing. The line was supposed to be:
dataLocation = [[NSUserDefaults standardUserDefaults] objectForKey:kOldDataLocation];
I somehow left off the assignment to the variable.
OK, simple fix. However, this doesn’t really help the people that have already upgraded and our stuck. In addition, I’m not quite ready to put out a 2.0.1 version. So, I added a menu option that says “Open Prior Version Data” which does the magic to open the data file and actually executes the problem line of code from above.
So, I’ve posted the new version as a beta, put a Knowledge Base article about it and put a ReceiptWallet News item about it. I’m hoping that I can simply point people to the beta version and their problems will disappear.
I’ll probably sleep well tonight having found the answer to one of this week’s greatest mysteries.