2015-04-27 2 views
1

Я копаю в этом форуме, но не мог понять, с чего начать.
Мне нужно создать приложение в Swift, которое ищет в своей внутренней базе данных ZIP-код и получает имя улицы, всего два столбца ZIP и Street, но это список более чем 20K почтовых индексов.
Пользователь сможет выполнять поиск, не редактировать, не добавлять и не удалять.
Я узнал и, пожалуйста, исправьте меня, если я ошибаюсь:
CoreData хорош для небольших баз данных и не может импортировать из списка почтовых индексов, которые у меня уже есть, и не позволяет открыть базу данных coredata для редактирования/копирования или добавления за пределами приложение, так как Apple хочет, чтобы мы использовали CoreData, если пользователи должны заполнить базу данных в iphone.
SQLite в Swift работает быстро, но в Интернете мало хороших обучающих программ, большинство из них показывают только, как работать с CoreData.
Я только что нашел один или два учебника в Swift SQLite. Никто не показывает, как импортировать данные из другой базы данных. Для работы с SQLite в Swift мне понадобится wraper, например, FMDB или SwiftData, документация слишком технична для моих знаний, поэтому я понятия не имею, куда мне идти.
Надеюсь, кто-то может мне помочь и показать мне направление и, возможно, помощь в этом путешествии.
Нефрит.Подход к базе данных

+1

Цель CoreData - сделать объекты постоянными. Тот факт, что он часто использует базу данных для этого, не является главным моментом. Поскольку это не ваша цель, это, вероятно, не самый правильный инструмент. Вероятно, вы хотите создать и заполнить базу данных SQLite в качестве побочного проекта вне вашего приложения и упаковать результат при создании приложения. –

+0

Спасибо Филлип :) –

ответ

0

Основные данные - это основа, которая поможет вам создать модель (в приложении Model/View/Controller) вашего приложения. Основные данные не являются технологиями баз данных.

Это поможет вам сохранить ваши данные. Для этого вы можете сохранять данные в памяти (быстрый , хорошо подходит для тестирования), в двоичной форме XML (не в iOS, да в Mac) или с использованием SQLite DB в качестве хранилища.

Сценарий нормального использования - хранить объекты Core Data в базе данных SQLite. Таким образом, это не «я должен выбирать между SQLite/Core Data». Это более «я изучу основные данные, и он будет использовать SQLite под капотом»

Используя Core Data, вы можете делать полный CRUD в памяти (внутри CD-контекста), который сохраняется в БД. Таким образом, вы можете импортировать свои почтовые коды внутри БД, а затем обращаться к ним только в режиме только для чтения (просто запрашивая основные данные). Запрос в Core Data == выборка

Затем вы можете связать эту предварительно заполненную БД с вашим приложением и использовать ее. Зачем? Поскольку Core Data отлично играет с UIKit, поэтому UITableViewController, например, отлично вписывается в NSFetchResultsController

Это крутая кривая обучения, но она будет окупаться, если вы будете продолжать использовать данные, которые вы хотите сохранить в своих приложениях.

+0

Спасибо Диего .... Мне интересно, знаете ли вы какую-либо ссылку или учебник, которые показывают, как связать мою БД, я пробовал, но кажется, что он не работает в тесте iphone/ipad, только в симуляторе похоже, работает, и после того, как я выхожу из Xcode, данные теряются :( –

+0

Я полностью согласен с Диего. Это крутая кривая обучения, но она будет окупаться в горах программирования, когда вы научитесь хорошо ее использовать. Мое предложение состоит в том, что вы учитесь делать каждый шаг, ищите помощь по SO и задаете конкретные вопросы, когда это необходимо. Вы действительно должны задать отдельный вопрос для каждой задачи, которую вы пытаетесь достичь. Надеюсь, что это поможет :) – andrewbuilder

Смежные вопросы