я получаю следующее сообщение об ошибке:Swift: Невозможно преобразовать значение типа 'Int16' в ожидаемый тип аргумента 'AnyObject?'
Cannot convert value of type 'Int16' to expected argument type 'AnyObject?'
на линии
person.setValue(Time, forKey: "Time")
, когда я запускаю это приложение. Кадр функции был взят из this tutorial и изменен с String
на Int16
, а также имена сущностей и атрибутов.
var people = [NSManagedObject]()
func saveName(Time: Int16) {
//1
let appDelegate =
UIApplication.sharedApplication().delegate as! AppDelegate
let managedContext = appDelegate.managedObjectContext
//2
let entity = NSEntityDescription.entityForName("Person",
inManagedObjectContext:managedContext)
let person = NSManagedObject(entity: entity!,
insertIntoManagedObjectContext: managedContext)
//3
person.setValue(Time, forKey: "Time")
//4
do {
try managedContext.save()
//5
people.append(person)
} catch let error as NSError {
print("Could not save \(error), \(error.userInfo)")
}
}
Вместо вызова 'setValue', лучше определить управляемые подклассы объектов для субъектов, а затем доступ к их свойствам. Это гораздо менее подвержено ошибкам. –