2016-09-23 2 views
0

Для моего приложения я использую CoreData для хранения информации о пользователе, и может быть несколько учетных записей пользователей. Поэтому мне нужно создать несколько файлов CoreData в разных папках.Изменить текущий источник CoreData для приложения

Пользователь выходит из системы, и приложение возвращается на страницу входа. При входе в систему с другой учетной записью мне нужно создать другой источник CoreData и изменить текущий источник CoreData приложения на новый источник CoreData.

CoreData Source

Я проверил их, но не мог понять концепцию:

Какая логика я должен следовать, чтобы достичь этого.

Благодаря

+0

Почему вы создаете другой источник CoreData? есть ли какое-либо конкретное требование в вашем приложении? в противном случае мы можем управлять несколькими пользователями в одном источнике CoreData с отношениями. – CodeChanger

+0

Благодарим за сообщение. Мне нужно создать еще один, потому что могут быть объекты с одинаковым идентификатором для разных учетных записей, поступающих с сервера. И это вызовет перезапись одного и того же объекта, и мой запрос выборки будет основан на идентификаторе. Это также разрушит мою логику выборки. –

+0

Но это также не возможно, что у сервера разные пользователи с одинаковым идентификатором. Я не думаю, что это так, пожалуйста, уточните один раз, когда серверный парень может быть его ошибкой от служб? – CodeChanger

ответ

0

Просто основывают ядро ​​имя хранилища данных на вашем входе в систему пользователя и протекала в обычном режиме.

Поэтому, когда пользователь выходит из системы, убедитесь, что вы избавились от любого NSManagedObjectContext, NSPersistentStoreCoordinator и NSPersistentStore. Затем повторно инициализируйте их для нового пользователя, начиная с нового URL-адреса магазина, подобного этому.

NSURL *store = [[self documentsDirectory] URLByAppendingPathComponent:[NSString stringWithFormat:@"%@_account.sqlite", userName]]; 

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

  • Нет связанных вопросов^_^