В моем контроллере ViewController у меня есть функция для извлечения всех «заголовков рубрик» (атрибута словаря «Словарь»). Я понял, что это не хорошая практика MVC.MVC - NSFetchRequest в файле модели без UIKit
Итак, я создал новый быстрый файл. Я не импортировал UIKit. Youtube Stanford - Разработка IOS 9 Apps с Swift - 2, 22:53: "Никогда не импортировать UI KIT в файле модели, так как модель UI независимой"
(https://www.youtube.com/watch?v=j50mPzDMWVQ)
Однако, теперь я получаю эти сообщения как «Использование неразрешенного идентификатора« UIApplication »». Что имеет смысл, так как я не импортировал UIKit. Вопрос в следующем: как мне выполнить запрос на выборку в моем новом быстром файле.
(Как вы, наверное, сейчас, сейчас, я новичок)
import Foundation
import CoreData
class QueryData {
private var selectedHeadingNumber:String = "-123456789"
private var setOfHeadingNumbers:[String] = [String]()
func getHeadingNumbers2() -> [String] {
if let managedObjectContext = (UIApplication.sharedApplication().delegate as? AppDelegate)?.managedObjectContext {
// Create Fetch Request
let fetchRequest = NSFetchRequest(entityName: "Vocabulary")
// Add Sort Descriptor
let sortDescriptor = NSSortDescriptor(key: "headingNumber", ascending: true)
fetchRequest.sortDescriptors = [sortDescriptor]
// Execute Fetch Request
do {
let result = try managedObjectContext.executeFetchRequest(fetchRequest)
for managedObject in result {
if let foundHeadingNumber = managedObject.valueForKey("headingNumber") {
if let result_number = foundHeadingNumber as? NSNumber
{
let result_string = "\(result_number)"
if !setOfHeadingNumbers.contains(result_string) {
print("Headingnumber: \(foundHeadingNumber) ")
setOfHeadingNumbers.append(result_string)
print("updated selectedHeadingNumber: ", selectedHeadingNumber)
selectedHeadingNumber = result_string
// set the default lessonnumber to the first lesson
if selectedHeadingNumber == "-123456789" {
selectedHeadingNumber = result_string
print("updated selectedHeadingNumber: ", selectedHeadingNumber)
}
}
}
//setOfHeadingNumbers.append(first)
}
}
} catch {
let fetchError = error as NSError
print(fetchError)
}
} // end of if statement
return setOfHeadingNumbers
} // end of func
} // end of class
Вы должны импортировать то, что вы используете. Я бы сказал, что код, который вы показали, не будет квалифицироваться как «класс модели». Он имеет пользовательские интерфейсы (или системы). – Eiko