2014-12-22 1 views
1

Если я определяю мой массив как:Swift и основные данные - массив и клеточные основы

var myList: Array <AnyObject> = [] 

, а затем использовать функцию переопределения viewDidLoad, чтобы заполнить этот массив так:

override func viewDidAppear(animated: Bool) { 
    let appDel:AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate 
    let context:NSManagedObjectContext = appDel.managedObjectContext! 
    let freq = NSFetchRequest(entityName: "List") 

    myList = context.executeFetchRequest(freq, error: nil)! 
    tableView.reloadData() 
} 

и мой " Список "содержит только имена пользователей как строки. Что именно хранится в «myList»? Это так же просто, как массив строк с именами пользователей?

Любые мысли и объяснения будут высоко оценены.

+0

У вас действительно есть два вопроса Вот. Хорошей новостью является то, что на второй ответ здесь: http://stackoverflow.com/questions/10807827/what-is-the-meaning-of-indexpath. Можете ли вы принять эту часть, и мы будем работать над ответом на первый вопрос? – dpassage

+0

@dpassage спасибо, очень полезно. Первый вопрос был вынесен. – martin

ответ

1

Ваш myList будет содержать подклассы NSManagedObject или List экземпляров, если вы определили этот класс. У каждого объекта будут атрибуты, которые вы определили для этого основного объекта данных.

indexPath - класс, который используется для представления row и sectionUITableView. Это также используется для идентификации item и sectionUICollectionView.

+0

Итак, если я определил свои объекты как Атрибут: имя пользователя и тип: String, мой массив будет состоять из строк? – martin

+0

Нет, это будет массив 'NSManagedObject'. Чтобы получить NSString, вы должны использовать accessor: '[myList objectAtIndex: i] .username', где' i' - номер индекса требуемого элемента. – picciano

+0

Хорошо, тогда я понимаю. Спасибо :) – martin

1

executeFetchRequest возвращает массив управляемых объектов из хранилища данных CoreData. Есть два способа справиться с ними.

Первый - использовать их как есть. Все они будут экземплярами NSManagedObject, и вы можете использовать такие методы, как valueForKey:, чтобы получить их значения.

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

Основные данные в целом как безумно мощные, так и безумно сложные. Я настоятельно рекомендую вам работать через учебник, либо Apple's, либо otherwise, чтобы получить его. (Обратите внимание, что некоторые из документов Apple рекомендуют начинать с чего-то, называемого Начальная точка Core Data.Кроме того, Apple удалила этот документ, но еще не удалила ссылки на него из других документов.)

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