Supposedly, the interface is to talk about the Abstraction -- the Interface of a class -- what methods are available, and what arguments they take, and what the return values are -- so the instance variables being defined in the @interface section can be a bit confusing?
Those instance variables can be anything, and they are the internal implementation details -- a programmer can defined class A using 10 instance
variables, and another programmer can rewrite the whole class, having the same interface (API), and use only 6 instance variables, so the instance variables are really irrelevant to the @interface section, isn't it?
Would it make more sense if the instance variables are listed in a separate section, such as a @states section, to indicate that they are the internal states of an object?
@statesdeclarations? What if there were several implementation files, how would you manage the states between them if it weren't held in the public header?