Vous pouvez appeler en utilisant ceci:
MyClass *a;
a.str;
Sans l'objet, vous ne pouvez pas appeler une variable d'instance. Cependant, vous pouvez appeler la méthode statique avec cette déclaration:
@interface MyClass:NSObject
+ (void)doX;
@end
@implementation
+ (void)doX {
// do whatever
}
puis dans une autre classe que vous avez juste besoin d'appeler:
[MyClass doX];
Cependant, laisser une variable d'instance publique n'est pas une bonne pratique. La raison en est qu'il laissera n'importe quelle classe, méthodes changer cette variable d'instance sans votre contrôle. Par exemple, ils peuvent mettre NSString * str à zéro et alors personne ne peut rien appeler, ou ils peuvent oublier de faire de la gestion de la mémoire lorsqu'ils appellent.
Une meilleure pratique pour la variable publique utilise @property
Par exemple, votre chaîne doit être déclarée comme:
@property (nonatomic, retain) NSString * str;
puis dans la mise en œuvre:
@implementation MyClass
@synthesize str;
La bonne chose A propos de la propriété, le compilateur générera des méthodes de gettter et setter pour vous et ces setters géreront la mémoire correctement pour vous.
En savoir plus sur properties here