У меня есть приложение, которое сохраняет несколько учетных записей пользователей для извлечения данных из моего API. Всегда есть одна учетная запись, которая будет активна или помечена TRUE. Когда я выбираю другую учетную запись, я деактивирую ранее активную учетную запись и активирую выбранную учетную запись или устанавливаю ее как ИСТИНА. Я использую CoreData в представлении таблицы учетных записей.Как установить/удалить несколько учетных записей для учетных данных API
Когда мое приложение запускает мой класс API, он проверяет мою CoreData, чтобы узнать, какая учетная запись активна, и присваивает свои учетные данные моему объекту Credential
. Затем я использую эти учетные данные для доступа и получения данных с моего сервера. Все работает до этого момента.
Моя проблема в том, что я выбираю другую учетную запись и сбрасываю свой объект Credentials
в моем методе didSelectRowAtIndexPath
, мой класс API по-прежнему имеет учетные данные ранее активной учетной записи. Я могу увидеть/напечатать объект Credentials
с учетными данными выбранной учетной записи.
Как настроить мои объекты для использования/использования только учетных записей выбранной учетной записи?
class API {
var credentials:Credentials!
init(){
self.credentials = getActiveStore()
// I use self.credentials.username to make API calls later in the code
}
func getActiveStore() -> Credentials?{
let appDelegate = UIApplication.sharedApplication().delegate as! AppDelegate
let managedContext = appDelegate.managedObjectContext!
let fetchRequest = NSFetchRequest(entityName: "User")
fetchRequest.returnsObjectsAsFaults = false
fetchRequest.predicate = NSPredicate(format: "active = %@", 1 as NSNumber)
var error:NSError?
let fetchResults = managedContext.executeFetchRequest(fetchRequest, error: &error) as! [User]
if fetchResults.count == 1 {
let name = fetchResults[0].name
let url = fetchResults[0].url
let username = fetchResults[0].username
let password = fetchResults[0].password
return Credentials(name: name, url: url, username: username, password: password)
}
return nil
}
}
Теперь это класс, который никогда не меняется. Когда я обновляю свои данные после выбора другой учетной записи, данные, которые я вижу, относятся к ранее активной учетной записи. Класс API не хочет меняться.
Спасибо. Иногда такие простые вещи я не могу думать. Это уже третий раз, когда я задал этот вопрос, и, наконец, кто-то понял. – Kleinfeltersville
Иногда нам нужны свежая пара глаз, чтобы сказать то, что мы пропустили. Я просто рад, что смогу помочь. Удачи, закончив ваше приложение – Icaro