Which of the following is best practice in Objective-C?
UITableView* view = (UITableView*) [self view];
[view setSeparatorColor:[UIColor blackColor]];
[view release];
vs.
((UITableView*) self.view).separatorColor = [UIColor blackColor];
Or is there a better way of writing this? self.view is a UIView*.
I’m asking both because I have a weird looking cast (maybe there’s a better way?) and because of the following text from the official documentation, which hints that it’s more than just a matter of style or personal preference:
A further advantage is that the compiler can signal an error when it detects an attempt to write to a read-only declared property. If you instead use square bracket syntax for accessing variables, the compiler—at best—generates only an undeclared method warning that you invoked a nonexistent setter method, and the code fails at runtime.
Well…. dot notation compiles down to square brackets in the end, but it is down to personal preference. I personally avoid dot notation unless I am setting / accessing a scalar type, it is too easy to look at the following for instance…
… and not know where step is a scalar property, or has a setter method etc. I prefer to be explicit and would use…
But again personal preference I guess.