views:

116

answers:

2

I have the following code: - (void)setItem:(Todo *)newItem { item = newItem; }

Why is it that I can't do - (void)setItem:(Todo *)newItem { self.item = newItem; } ?

I have item declared in my header file but I get a EXC_BAD_ACCESS error? Item is also not synthesized. The method is meant to be a custom setter.

Thanks!

+4  A: 

self.item = newItem; will cause an infinite loop since it's calling setItem.

rein
+1  A: 

'self.item' means 'the property called item', not the variable called item (unlike Java or C#). Just use 'item = newItem;'. And don't forget to retain it if necessary!

Ian Henry