2010-11-10 11 views
1

Je déclare une variable dans une classe et souhaite utiliser cette variable dans la même classe, mais je souhaite placer des données dans la variable d'une classe différente. Comment puis-je remplir une variable d'une autre classe?moyen le plus simple d'accéder à une variable d'une autre classe

EDIT:

Je cette dans une classe:

NSManagedObject *managedObject = [self.fetchedResultsController objectAtIndexPath:indexPath]; 
NSString *aString = [[managedObject valueForKey:@"data"] description]; 

Ensuite, je dois cela dans une autre classe:

NSString *stalklabel = aString; 

    NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://news.search.yahoo.com/rss?ei=UTF-8&p=%@&fr=news-us-ss", stalklabel, nil]]; 
+0

Il serait utile que vous énonçiez clairement votre question, peut-être donner un exemple de code. Essayez-vous d'accéder à une variable d'une classe différente (utilisez une propriété) ou essayez d'obtenir une valeur d'une autre classe pour la mettre dans une variable locale (utilisez une fonction)? – RyanJM

Répondre

1

Dans votre première classe créer une méthode qui retourne cette chaîne.

+ (NSString*)dataName { 
    NSManagedObject *managedObject = [self.fetchedResultsController objectAtIndexPath:indexPath]; 
    NSString *aString = [[managedObject valueForKey:@"data"] description]; 
} 

Dans la deuxième classe, appelez cette méthode.

- (void)whatEverClass { 
    NSString *stalklabel = [FirstClass dataName]; 

    NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://news.search.yahoo.com/rss?ei=UTF-8&p=%@&fr=news-us-ss", stalklabel, nil]]; 
} 
3

Faire une méthode de propriété/setter pour définir la variable:

Dans le .h

@property(nonatomic, assign) int myInt; 

Dans le .m

@synthesize myInt; 
1

Tout ce qui concerne les propriétés est vrai. La pièce manquante est un moyen pour une classe de parler à une autre. Je fais cela tout le temps comme suit:

Supposons que j'ai une classe appelée "First" et une classe "Second". Dans ma classe "First", je veux pouvoir accéder au varable "myInt" dans la classe "Second".

je déclarerais « Second » en tant que tel:

@class FirstClass; // Forward Declaration 
@interface SecondClass: NSObject { 
    FirstClass*first; 
} 

@property (nonatomic,retain) FirstClass *first; 

Maintenant, je créé whereever deuxième classe (par exemple dans ce cas, il était à l'intérieur firstClass, mais il ne doit pas être), je d faire quelque chose comme »

SecondClass *second = [[SecondClass alloc] init]; 
[second setFirst: self]; 

ensuite à l'intérieur "second code", vous pouvez le faire:

[first setMyInt:123];