¿Cuál es la diferencia entre declarar variable en .m vs .m pero con categoría en objective c

Posible duplicado:
Variables de instancia declaradas en el file de implementación ObjC

Me gustaría saber la diferencia en términos de visibilidad entre los dos siguientes fragments de código, es decir, dónde y quién puede acceder / ver el nombre de la variable y todas las demás diferencias (que no sean una categoría).

1:

// in implementation file SchoolTableViewController.m @interface SchoolTableViewController() { NSString* name; } @end @implementation SchoolTableViewController ... @end 

2:

 // in implementation file SchoolTableViewController.m @implementation SchoolTableViewController { NSString* name; } ... @end 

Creo que el segundo escenario de la variable tiene un scope @protected, mientras que en el primer caso su visibilidad está limitada solo al file .m