Note on SplitViewController and Auto Reference Counting

SplitViewController is a easy tool to make a nice interface for iPad, but I have some negative comment on it:

- It is singleton, and it occupy the whole window. I cannot add something else on it. Of cause, it force a simpler design.

- It cause the work flow different between iPhone and iPad version, which cannot be solved by storyboard entirely.

There is a special case for auto reference counting that would produce error:

- make a weak property
@property (weak) UIView* myView

- alloc and assign an instance to it directly
self.myView = [[UIView alloc] init];

- the instance is released immediately!

It is because the reference counting is zero right after the assignment, and ARC don’t recognize that should be retained and auto-released. In order to solve this, change the code to:

- create a local variable to store the newly alloc-ed instance
UIView *view = [[UIView alloc] init];
The reference counting of the instance is 1 and being auto-released.

- assign that to the property
self.myView = view;

Share Button

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>