it also help when you understand how the dot-notation works in objective-c... it's not like other languages where you are just accessing a member of an object.
foo = object.bar;
is syntactic sugar for
foo = [object bar]; //where 'bar' is a method call
and object.foo = bar;
is syntactic sugar for:
[object setFoo:bar];
I dealt with a lot of goofy memory errors trying to figure out why using 'self.foo' and just 'foo' inside of a class acted differently. Now it makes much more sense.