@NSManaged для типов данных Int16 или Int64 в CoreData
Я пытаюсь создать простой трекер в SwiftUI в качестве учебного опыта, и я нашел пару руководств по обработке CoreData в SwiftUI. Попытка следовать за ними стала настоящей головной болью ... Первый, за которым я пытаюсь следовать, - здесь. Там есть часть, которая показывает что-то вроде этого ...
public class BlogIdea: NSManagedObject, Identifiable {
@NSManaged public var ideaTitle: String?
@NSManaged public var ideaDescription: String?
}
extension BlogIdea {
// ❇️ The @FetchRequest property wrapper in the ContentView will call this function
static func allIdeasFetchRequest() -> NSFetchRequest<BlogIdea> {
let request: NSFetchRequest<BlogIdea> = BlogIdea.fetchRequest() as! NSFetchRequest<BlogIdea>
// ❇️ The @FetchRequest property wrapper in the ContentView requires a sort descriptor
request.sortDescriptors = [NSSortDescriptor(key: "ideaTitle", ascending: true)]
return request
}
}
Проблема, с которой я сталкиваюсь, заключается в том, что мои данные представляют собой String, Int16 и Int64. Однако всякий раз, когда я пытаюсь использовать их, я получаю сообщение об ошибке в xcode
Свойство не может быть помечено как @NSManaged, поскольку его тип не может быть представлен в Objective-C.
Я попытался пометить его как Double, Int16 и Int64 в моей модели CoreData, и все они дают одну и ту же ошибку в xcode.
Мой класс простой...
class TrackedData: NSManagedObject, Identifiable {
@NSManaged public var dateString: String?
@NSManaged public var time: Int16?
@NSManaged public var timestamp: Int64?
}
Тогда у меня есть расширение, которое поможет мне отфильтровать результаты. Из того, что я вижу в основной модели данных, у вас есть только несколько вариантов данных типа Int (Int16, Int32, Int64, Double, Float и Decimal), но мне еще предстоит выяснить, как я могу на самом деле используйте любой из них с аннотацией @NSManaged. Есть ли какой-то особый способ работы с данными типа Int в CoreData, который мне не хватает? Извините, я новичок в SwiftUI и имею дело с материалом @FetchRequest, поэтому я не вижу, чего мне не хватает.
Спасибо.