Question: If I am messing around with XCode and trying to learn Objective-C, does it pose any threat to my system if I routinely forget to release objects? What is the real consequence of not releasing objects? If I restart my computer will these memory leaks persist?

I am mostly messing with NSStrings and NSTimers and things like that, nothing serious. I'm just concerned about it messing up my computer.

Is there any way to check if there are unreleased objects? What is one to do if they want to check a bunch of code to see if there are any of these memory leaks?

Answer: 
You won't just take up memory available for your app, you will also take up memory for all other apps on the system. If you take up all the available memory Mac OS X will start moving other applications into virtual memory as well, making the ***entire computer*** slow, not just your app.

On an iOS device, if you use excessive amounts of memory the operating system will kill your app, with no error message to the user, and no chance for you to save any files.

If it's really bad, the app store review team will reject your app from even being submitted to the store. This applies to both the iOS app store and the Mac app store.

You can use the [Instruments app to check for leaks](http://www.cimgf.com/2008/04/02/cocoa-tutorial-fixing-memory-leaks-with-instruments/).

The general rule of thumb, is any time you use a method who's name starts with `alloc`, `new`, `retain`, or `copy` you are responsible for calling `release` or `autorelease` when the object is no-longer needed. And your object's `dealloc` method needs to clear all of it's instance variables.

The newest versions of Mac OS X and iOS support [Automatic Reference Counting](http://developer.apple.com/library/mac/#releasenotes/ObjectiveC/RN-TransitioningToARC/_index.html#//apple_ref/doc/uid/TP40011226). I've never used it, but it should make life much easier for new programmers.
No, you can't hurt your machine by forgetting to release objects. There's very little that you can do to hurt your machine in software short of deleting system files.

As others have pointed out, all memory used by your program will be reclaimed when the program terminates. If you want to check your program for leaks while it's running, you can monitor it with the Instruments tool that's included with Xcode. I won't try to explain how to use it here -- read the docs and ask if you have trouble.

You can also get some clues that an app is leaking memory by monitoring its memory usage with something like the command line `top` program. If an app's memory usage is constantly increasing as you use it, that's an indication that there may be a leak.