Tereno
Tereno

Reputation: 933

Objective C concept explanation

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!

Upvotes: 0

Views: 448

Answers (2)

Ian Henry
Ian Henry

Reputation: 22413

'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!

Upvotes: 1

rein
rein

Reputation: 33465

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

Upvotes: 5

Related Questions