1

我对目标 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 第一次被实例化,当我开始使用 Class2 的实例时(注意变量具有相同的名称) Class2 将使用 fetchedResultsController 和 Class1 的名称。基本上由 Class2 中的 [self fetchedResultsController] 调用的 fetchedResultsController 函数永远不会创建 NSFetchedResultsController 的新实例,如果我在 Class2 创建期间尝试打印名称,它会包含 Class1 中设置的值吗?这些不是每个班级的私人吗?我究竟做错了什么?

4

1 回答 1

3

您还没有创建私有成员,而是创建了全局成员。试试这个:

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

@end
于 2013-07-07T13:25:48.423 回答