나는 이치에 맞지 않는 prob에 머리를 부러 뜨 렸습니다.대리인의 개체 속성 액세스
AppDelegate에 MyClassA MyClassB가 MyViewController
이 MyClassA에서 이름 ClassB가에 의해 형 MyClassB의 속성이 : 나는 내 프로젝트에서 다음이 있다고. MyClassB에는 포인터 이름 myArray로 NSMutableArray 유형의 속성이 있습니다.
다음과 같은 viewDidLoad에 아래 MyViewController에 나는 그것 (MyClassA의) MyClassB 속성의에서 myArray에 액세스 할 수 MyClassA를 인스턴스화하는 경우 :
MyClassA *classA = [[MyClassA alloc] init];
NSLog([NSString stringWithFormat:@"%i", [[[classA classB] myArray] count]);
이 성공적으로 로그의 수를 표시하고 동일한에서됩니다 시간, 배열 내용에 대한 추가 액세스 잘 작동합니다.
그러나, 여전히 MyViewController에있는 MyClassA 인스턴스화 및 대리자에서 액세스 할 때 다음과 같이
AppDelegate *aDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
NSLog([NSString stringWithFormat:@"%i", [[[aDelegate classA] classB] myArray] count]]);
로그가 여전히 수를 표시합니다 성공적으로의 내용에 하지만 더 접근 배열은 오류를 보이지 않고 "현재 언어 : 자동 현재 objective-c"입니다. 단지 한 줄입니다.
이것은 이상한 행동입니다. 대리자에서 인스턴스화 된 개체와 함수 (예 : ViewController의 viewDidLoad)에서 개체에 로컬로 액세스하는 것과는 다른 점이 있습니까?
도움말 매우 인해 액세스 = D에게
활성 구성이 디버그로 설정되어 있는지 확인하여 중단 점을 더 잘 검사 할 수 있습니다. – Jordan