This might help a little. It seems as though something is accessing some allocated memory after it was released, so your delete/clean up steps are most likely correct, but somewhere down the line something ELSE is trying to access memory you've already freed. Since commenting out the delete *iter stopped the error from happening, the culprit is most likely _mazeMap.
3. Since I am not familiar with xcode or GDB debugger, what is _mazeMap's and iter's REAL definitions? You have
vector _mazeMap; std::vector::iterator iter = _mazeMap.begin();which don't seem like correct syntax.
vector< Wall * > _mazeMap; std::vector< Wall* >::iterator iter = _mazeMap.begin();
It's better to post *exactly* what you have, instead of cleaning it up for a post.
I would also try the _mazeMap.clear(). If you don't, you basically have _mazeMap full of garbage pointers.
4. Get familiar with breakpoints. They will be your best friend in situations like this.