2014-09-19 3 views
0

Я пытаюсь создать очень простое окно для отображения списка элементов, которые поступают из базы данных Sqlite3. У меня есть общий список моих объектов, и я хочу привязать его к элементам управления в окнах. Каков наилучший способ сделать это?Список привязок к NSArrayController для использования в NSTableView

Если бы это были формы Windows .NET, я бы сделал это, что такое эквивалент Cocco? myBindingSource.DataSource = new List<MyObject>();

Моего ViewController.cs код в настоящее время выглядит следующим образом:

List<MyObject> dataSource = DataStore.GetLibraries(); public override AwakeFromNib() { base.AwakeFromNib(); dataSource = GetMyObjects(); myArrayController.Bind("contentArray", this, "dataSource", null); // Throws error }

Но это выдает ошибку: этот класс не является значением ключа кодирования совместимым для ключа DataSource.

Спасибо!

ответ

0

После связывания libsqlite3.dylib с вашей каркасной базой (общий: связанные структуры и библиотеки) и добавление файла базы данных в ваш проект, вы создаете класс доступа sqlite, чтобы выполнять подключения к базе данных и активировать запросы.

Если ваш проект также должен быть сохранен в базе данных, при установке база данных должна быть размещена в том месте, где у вас также есть доступ на запись, это будет в папке «Документы» для приложения iphone или в «Приложении Поддержка "на MacOS X, но не в самом наборе приложений. (Будьте осторожны, чтобы не испортить имя владельца, иначе только root или у вас есть доступ на запись, а ваши клиенты не будут)

Чтобы связать результат запроса с массивом-контроллером, который, кажется, является сердцем вашего вопроса, вывод запроса должен быть отформатирован в соответствии с правилами Apple KVC. Это делается путем создания NSDictionary (с объектами и ключами) и настройки контроллера массива для чтения из этого словаря.

Ссылка, из которой я получил это, чтобы работать в моих собственных проектах, к сожалению, был удален, но я нашел вам два учебника, которые дают вам необходимые вызовы функций, если вы считаете, что вам нужна дополнительная информация об этом: a) для соединения с сайтом: http://www.techotopia.com/index.php/An_Example_SQLite_based_iOS_4_iPhone_Application_(Xcode_4) b) для подключения NSArrayController с словарем: http://ihoneylocust.wordpress.com/2013/02/19/first-mac/