인터페이스 빌더의 arraycontroller (myArraycontroller)를 사전으로 구성된 배열 (fileDictionariesArray)에 연결하고 있습니다. 이것은 잘 작동하지만 내가 액세스하고 arraycontroller [myArrayController arrangedObjects]
의 내용을 통해 열거 할 때 나는이처럼 내 arrayController에 프로그래밍 컨텐츠를 추가 할 때까지 나는 내용의 전무를 얻을 :NSArraycontroller 내용 액세스
[myArrayController addObjects:fileDictionariesArray];
을 내가 할 수있는 것을 수행 한 후 모든 내용을 반복하십시오. 문제는 배열 (fileDictionariesArray)이 두 번 추가되었다는 것입니다. IB 바인딩을 통해 한 번, addObject를 통해 한 번. 프로그래밍 방식으로 내용을 설정할 때까지는 arrayContoller에 액세스 할 수 없습니다. 나는 arrayController의 내용을 삭제할 수 있습니다 다음과 같이 프로그램을 다시 설정하십시오 arrayController 항목의 정확한 수를 제공
[myArrayController setContent:nil];
[myArrayController addObjects:fileDictionariesArray];
을하지만,이 작업을 수행하는 올바른 방법은 아닌 것 같아. 누구나 컨텐츠를 두 번 추가하지 않고서 arrayObjects 배열을 통해 내 arrayController에 액세스하는 방법에 대한 힌트를 누군가 주시면 감사하겠습니다.
도움 주셔서 감사합니다. 환호, Trond Kristiansen
당신이 내용에 대해 아무렇지도 않게 말할 때, 언제/어디서 어떻게 검사하나요? –
이전 댓글에 무슨 문제가 있습니까? 나는 [myArrayController addObjects : fileDictionariesArray]를 호출한다. 그런 다음 즉시 arrayController의 요소를 반복합니다. for (NSArray의 NSDictionary * file) {NSLog ...}. 배열의 수는 20이어야하지만 대신 21을 포함하는 첫 번째 요소가 null입니다. 이것은 awakeFromNib에 의해 초기화 된 null 또는 null arrayController에 배열을 추가 한 결과 일 수 있다고 생각하십니까? –
내 대답을 삭제했기 때문에 이전 의견을 볼 수없는 것 같습니다. nib 파일에서 컨트롤러를 로딩 할 때 새 인스턴스를 생성하므로 내용 준비가 적용되지 않으므로 IB에서 선택을 취소하십시오. –