У меня есть NSArrayController, связанный с CoreData в моем приложении. Он также привязан к TableView, который отображает данные. Две кнопки привязаны к ArrayController, которые добавляют и удаляют строки. Все это работает так, как ожидалось. Я могу добавлять, редактировать, сохранять и удалять записи CoreData.NSArrayController возвращает null
Существует раздел моего приложения, который должен принимать операции перетаскивания из файлов (работающих). Он берет данные из файлов, ищет различную информацию и должен вставлять эту информацию в базу данных Core Data с помощью контроллера NSArray.
Я добавил класс, обрабатывающий разбор/добавление файла в базу данных как объект в IB. Я создал IBOutlet для контроллера массива в классе и связал контроллер с реферируемым выходом класса.
Если я добавлю кнопку к интерфейсу, чтобы напрямую вызвать метод, который добавляет пользовательскую запись в базу данных, все будет работать. Если метод вызывается с помощью операции перетаскивания, ничего не работает, даже запись простого [arrayController className] возвращает значение null (хотя возвращает NSArrayController, как ожидалось, когда метод вызывается из нажатия кнопки).
Единственное различие, которое я вижу, заключается в том, что при доступе через кнопку мыши метод вызывается напрямую, а другой путь проходит через мой класс перетаскивания перед загрузкой класса синтаксического анализа, но я полностью завис для исправления этой ситуации. Я буду рад предоставить код, просто не уверен, какой код вам понадобится.
Любая помощь приветствуется. Благодаря!
==================
ОБНОВЛЕНИЕ Оказывается, я был подключение IBOutlet к классу (подклассу вида) объекту в IB вместо к самому виду обработки капель. Соединяя их, все работает. Ну, не работайте, теперь у меня есть другие проблемы, но теперь контроллер массива создается.
Да, это не то, что я понял. Я просто не знаю, почему. Как я уже сказал выше, экземпляр работает, когда я обращаюсь к методу в классе непосредственно через интерфейс, поэтому привязка к атрибуту NSArrayController правильна. Тем не менее, операция перетаскивания перетаскивания проходит через другой класс перед тем, как его перетащить в тот, который обрабатывает вставку. Хмм. У меня появилась идея, я пойду попробовать. –
Скорее всего, это самый близкий ответ на то, что я нашел. У меня есть представление, которое подклассифицировано для добавления функциональности перетаскивания. Сам подкласс был добавлен как объект в IB, и все мои привязки были для этого класса, а не для самого представления. Как только я привязался к самому представлению, контроллер массива внезапно переставал быть нулевым. –