ios - 如何在 iOS 的 Core Data 中存储 Swift 结构?

标签 ios swift core-data struct

目前我正在将我的一个类作为 NSData 存储在 plist 中,显然这不是一个好的方法。

所以我正在尝试设置核心数据,但我的类有结构。这是我的:

import Foundation
import CoreData

class Favourite: NSManagedObject {
    @NSManaged var origin: Stop

    struct Stop {
        var name: String;
        var id: String;
    }
}

但这并不好,因为它说:

Property cannot be marked as @NSManaged because its type cannot be represented in Objective-C

此外,如果没有发生此错误,我不知道我会在我的 xcdatamodeld 文件中设置什么。

我想我可以将值存储在结构中并在对象初始化时赋值吗?这是最佳/最干净的方式吗?

最佳答案

我会这样进行:

import Foundation
import CoreData

    struct Stop {
       var name: String;
       var id: String;
    }

    class Favourite: NSManagedObject {

        @NSManaged var name: String
        @NSManaged var id: String

        var stop : Stop {
           get {
                return Stop(name: self.name, id: self.id)
            }
            set {
                self.name = newValue.name
                self.id = newValue.id
            }
         }
    }

非常有趣的文章,您应该阅读:http://www.jessesquires.com/better-coredata-models-in-swift/

关于ios - 如何在 iOS 的 Core Data 中存储 Swift 结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37876275/

相关文章:

ios - UICollectionView 列的垂直偏移

ios - 在 Swift 3 中以编程方式使用 ScrollView

cocoa - 如何将 NSKeyedUnarchive NSManagedObject 的子类导入到 Core Data 中?

ios - 如何使用 App Delegate 的托管对象上下文实例化恢复的 View Controller ?

ios - 如果它们在表中,我如何使用 hitTest 获取底层 View ?

ios - Swift 2 - 传递给不带参数的调用的参数

swift - 将 INNER JOIN 查询从 SQLite 转换为 SQLite.Swift

iphone - 从 NSColor 数据创建 UIColor

iphone - 仅当页码为零时隐藏上一个按钮,仅当页码为 20 时隐藏下一个按钮

ios - 如何在屏幕中央的 Google map 上查看驾驶员当前位置(驾驶时)?