Заполнение массива пользовательскими объектами в Swift

#ios #arrays #core-data #swift

#iOS #массивы #core-данные #swift

Вопрос:

Для моего текущего проекта я хотел бы заполнить TableView из моей базы данных CoreData.

У меня есть класс с именем Movies (MovieName, cinemaName, rate)

Благодаря этой функции :

     var appDel:AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate
    let context:NSManagedObjectContext = appDel.managedObjectContext
    var request:NSFetchRequest = NSFetchRequest(entityName: "Movies")
    myMovies = context.executeFetchRequest(request, error: nil)
 

Тем не менее, я хотел бы указать тип объектов в этом массиве (мне нужен массив объектных фильмов)

Я пробовал это

     var myMovies:Array<Films> ...
 

но с типом массива у меня нет доступа к методу objectAtIndex

Есть идеи по решению этой проблемы?

Спасибо

Ответ №1:

Спасибо за ваш ответ! Но я решил использовать это вместо :

     override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath:    NSIndexPath) -> UITableViewCell {
    let cell:MainTableViewCell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as MainTableViewCell

    println((myMovies.objectAtIndex(indexPath.row) as Movies).name)
    cell.CellTitle.text = (myMovies.objectAtIndex(indexPath.row) as Movies).MovieName)
    return cell
}
 

Но это тоже не работает…

РЕДАКТИРОВАТЬ: теперь это работает! Я пропустил, чтобы связать свой класс с моей сущностью в CoreData! Извините

Ответ №2:

вы должны иметь возможность выполнять myMovies [0], такие же, как objectAtIndex, причина, по которой у вас нет objectAtIndex, заключается в том, что это массив Swift, вы можете просто получить доступ к индексу с помощью []