2013-07-07 2 views
1

Je suis très nouveau à l'objectif C et je suis tombé sur quelque chose que je suis très confus. J'ai 2 classes:Objectif C membre privé confusion/nom collision?

@implementation Class1 

NSFetchedResultsController *fetchedResultsController; 
NSString* name; 
.... 
- (NSFetchedResultsController *) fetchedResultsController {  
    if (fetchedResultsController != nil) { 
    return fetchedResultsController; 
    } 
    ..... 
} 
@end 

@implementation Class2 

NSFetchedResultsController *fetchedResultsController; 
NSString* name; 
.... 
- (NSFetchedResultsController *) fetchedResultsController {  
    if (fetchedResultsController != nil) { 
    return fetchedResultsController; 
    } 
    ..... 
} 
@end 

Class1 s'instancié 1er, le temps que je reçois d'utiliser une instance de Classe2 (variables avis sont du même nom) Classe2 utilisera fetchedResultsController et le nom de Class1. Fondamentalement, la fonction fetchedResultsController appelée par [self fetchedResultsController] dans Class2 ne créera jamais une nouvelle instance de NSFetchedResultsController, même si je tente d'imprimer le nom lors de la création de Class2, elle contiendra la valeur définie dans Class1? Ne sont-ils pas privés de chaque classe? Qu'est-ce que je fais mal?

Répondre

3

Vous n'avez pas créé de membres privés, vous avez créé des globals. Essayez ceci à la place:

@implementation Class1 { 
    NSFetchedResultsController *fetchedResultsController; 
    NSString* name; 
} 
.... 

@end 
+0

Ahh {} merci ... continuez de chercher et ne cherchez pas ce qui me manquait. – kos

Questions connexes