2013-07-07 1 views
1

나는 객관적인 C에 매우 익숙하며, 내가 혼란스러워하는 어떤 것을 발견했다.목표 C 개인 회원 혼동/이름 충돌?

@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의이 fetchedResultsController 및 클래스 1의 이름을 사용합니다 (고지 변수가 같은 이름이다) Class2의 인스턴스를 사용할 수 시간으로, 1 인스턴스화됩니다 : 나는 2 개 종류가있다. 기본적으로 Class2에서 [self fetchedResultsController]에 의해 호출 된 fetchedResultsController 함수는 NSFetchedResultsController의 새 인스턴스를 만들지 않습니다. 또한 Class2를 만드는 동안 인쇄 이름을 시도하면 Class1에 설정된 값이 포함됩니까? 각 클래스의 비공개가 아닌가요? 내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변

3

개인 회원을 만들지 않았습니다. 전역을 만들었습니다. 대신 다음을 시도하십시오.

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

@end 
+0

Ahh {} 덕분에 계속보고 찾고 내가 누락 된 부분을 파악할 수 없었습니다. – kos