2015-10-14 4 views
0

я получил следующий код, чтобы загрузить данные хранятся:CoreData: Загрузка Целые из Файла

func loadLevel(){ 
    let appDel:AppDelegate = (UIApplication.sharedApplication().delegate as! AppDelegate) 
    let context:NSManagedObjectContext = appDel.managedObjectContext 

    let request = NSFetchRequest(entityName: "Level") 
    request.returnsObjectsAsFaults = false 

    do{ 
     let results:NSInteger = try context.executeFetchRequest(request) 
     level = results 
    }catch{ 
     print("Error") 
    } 
} 

В строке, где я пытаюсь сохранить данные в результатах variabel я получаю следующее сообщение об ошибке:

Cannot convert value of type '[AnyObject]' to specified type 'NSInteger' (aka 'Int')

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

ответ

0

executeFetchRequest возвращает массив результатов, потому что выборки могут и обычно возвращают более одного результата. Эти результаты могут быть разных типов в зависимости от того, как был настроен запрос выборки. Таким образом, тип возврата - [AnyObject].

Вы пытаетесь присвоить результат выборки одному NSInteger. Вы не можете просто назначить массив AnyObject. Ваши результаты будут равны нулю или больше экземпляров вашего экземпляра Level, либо экземпляры NSManagedObject, либо экземпляры настраиваемого подкласса, который вы настроили для объекта.

Что вы должны сделать, это:

  1. Изменение results быть типа [AnyObject]
  2. Посмотрите через этот массив, чтобы найти примеры Level
  3. Получить целочисленных значений из любого атрибута Level содержит целое число, тебе нужно.
+0

спасибо. Я собираюсь попробовать это завтра. Это похоже на большую работу ... –

+0

Это характер проблемы. Вы делаете то, что по дизайну может возвращать несколько результатов. Если вам нужно хранить/читать только одно целое, 'NSUserDefaults' будет намного проще и более уместным. –

+0

Большое спасибо. Использование 'NSUserDefaults' для хранения данных намного проще и обеспечивает достаточную емкость. –

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