Objective C私人成员混淆/名称冲突?

时间:2013-07-07 13:21:08

标签: objective-c private-members

我对目标C很新,遇到了一些我非常困惑的事情。我有2个班级:

@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实例化为1st,当我使用Class2的实例(通知变量具有相同名称)时,Class2将使用fetchedResultsController和Class1的名称。基本上在Class2中由[self fetchedResultsController]调用的fetchedResultsController函数永远不会创建NSFetchedResultsController的新实例,如果我在Class2创建期间尝试打印名称,它将包含在Class1中设置的值?每个班级都不是私人的吗?我做错了什么?

1 个答案:

答案 0 :(得分:3)

您尚未创建私有成员,您创建了全局变量。试试这个:

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

@end